如何对Python类进行概述?如何推断数据类型?

时间:2017-04-15 09:50:10

标签: python class documentation

开始一个Python项目,编写了几百行代码,创建了一些类,立即得到了满足,一切运行良好。

几个月后回到这个项目,我绝望地迷失了。比意大利面更糟糕的是:代码现在看起来像是一百个类成员函数的混乱集合。大多数这些功能只有两到几十行;他们的工作和目的非常明确 - 除了我不知道函数参数的数据类型,返回值以及所涉及的类成员变量的数据类型。因此,我无法全面了解我的课程是如何相互关联的。

如何处理这种情况?如何获得C ++中.h头文件提供的高级概述?如何将这些信息插入源文件,以便下次我不需要重做这项研究?

1 个答案:

答案 0 :(得分:0)

在适当情况下使用docstrings会有很长的路要走。

PEP引用的例子:

def complex(real=0.0, imag=0.0):
    """Form a complex number.

    Keyword arguments:
    real -- the real part (default 0.0)
    imag -- the imaginary part (default 0.0)
    """
    if imag == 0.0 and real == 0.0:
        return complex_zero
    ...

这些字符串作为__doc__特殊属性添加到函数/方法中,您可以从python访问它。直接或与pydoc模块一起使用。作为奖励,可以使用help(something)直接从python控制台获取此类文档。您还应该查看sphinx-doc,这是用于记录python本身的工具。它不是源代码,但它是为记录python代码量身定制的,整体上非常方便。

至于您对实际类型的关注,通常不指定特定类型。他们没关系。重要的是你能用它们做什么,因为python代码通常使用duck typing。那就是:你不关心你的论点是什么,只要你可以调用它的foo方法并访问它的bar属性,它们的行为与你期望的一样。