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代码块总结的主要内容,如果未能解决你的问题,请参考以下文章

python代码块总结

[Python]常用代码块

Python学习总结

如何在 Django Summernote 中显示编程片段的代码块?

Sphinx - 在代码块片段中使用省略号 (...)

Python学习 :函数