python代码块总结
Posted 蔚尺丈八声
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python代码块总结相关的知识,希望对你有一定的参考价值。
本文总结工作中频繁用到的python代码块。
python中文注释规范
对于python函数、方法、类的中文注释规范:
class ClassExample(object):
"""这里写对于类的简单描述(一句话总结)。
这里写对于类的具体描述。
TODO(可选):
这里写将来可能对于类的改动。
属性:
属性名:属性类型 属性描述
"""
def __init__(self, val):
self.val = val
def method_example(self, p):
"""这里写对于方法的简单描述(一句话总结)。
这里写对于方法的具体描述。
TODO(可选):
这里写将来可能对于方法的一些改动
用例(可选):
具体写方法的使用例子。
参数:
参数名:参数类型 参数描述
返回值:
返回值类型 返回值描述
异常(可选):
异常类型 异常描述
"""
self.val = p
if p is None:
raise TypeError
return p
def function_example(p):
"""这里写对于函数的简单描述(一句话总结)。
这里写对于函数的具体描述。
用例(可选):
具体写方法的使用例子。
参数:
参数名:参数类型 参数描述
返回值:
返回值类型 返回值描述
异常(可选):
异常类型 异常描述
"""
if p is None:
raise TypeError
return p
用例:
from collections import deque
class TreeNode(object):
"""二叉树的结点类型。
包含对二叉树结点的初始化、打印结点的操作。
TODO:
增加对二叉树删除、插入结点的操作。
属性:
val:int 根结点的值,默认为0
left:TreeNode 左孩子结点,默认为None
right:TreeNode 右孩子结点,默认为None
"""
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def __str__(self):
"""打印二叉树中的所有结点。
返回值:
TreeNode 嵌套的结点
"""
return f'<{self.val}, {self.left}, {self.right}>'
def build_tree(nodes):
"""构造一棵二叉树。
思路:
借助辅助队列,对输入的列表nodes构造二叉树。
步骤:
1.将nodes中第一个元素初始化为二叉树的根结点,并入辅助队列中。
2.辅助队列出队一个元素root,然后进入循环:
2.1.从左至右遍历nodes,每次遍历两个元素,第一个元素作为root的左孩子,第二个元素作为root的右孩子
2.2.将root的左孩子、右孩子依次入辅助队列中
2.3.一直循环2.1、2.2,直到nodes遍历结束
参考:
https://stackoverflow.com/questions/43097045/best-way-to-construct-a-binary-tree-from-a-list-in-python
参数:
nodes:list 装有数字的list,双亲存储结构,如nodes=[1,2]
返回值:
TreeNode 构建好的二叉树
异常:
StopIteration 对输入的列表,停止迭代时抛出的异常
"""
iter_p = iter(nodes)
tree = TreeNode(next(iter_p))
assist_deque = deque([tree]) # 构造一个辅助队列(左出右进)
while True:
root = assist_deque.popleft()
try:
root.left = TreeNode(next(iter_p))
root.right = TreeNode(next(iter_p))
assist_deque.append(root.left)
assist_deque.append(root.right)
except StopIteration:
break
return tree
注意:
- 类名采用大驼峰命名法(CamelCase),方法名、函数名采用(小写)下划线命名法(lower_upper_case)
- 如在注释中额外增加字段,参照如下格式:
用例:""" 字段名:(冒号是中文冒号) 具体描述。(前面空一个tab) """
""" 思路: 该方法借鉴了某思路。 """
参考:
以上是关于python代码块总结的主要内容,如果未能解决你的问题,请参考以下文章