2016-02-18 39 views
0

文档字符串(docstring)就像注释;但以不同的方式使用。它用于给出任何类,函数,方法,模块等的简要信息。它不是强制性的,但对源代码是强制性的。从类,函数,方法,模块打印文档字符串

Docstring使代码具有更高的可读性和理解性。 从模块,函数,类或方法定义中打印文档字符串(docstring)。

class Test(object): 
    ''' class documentation ''' 
    var = 5        

    def __init__(self): 
     ''' init(constructor) documentation ''' 
     self.var = 9      

    def change(self): 
     ''' change(self) ''' 
     self.var = 13 
     print self.var 

    def __del__(self): 
     print "Destructor deleting object - ", self.var 

cls = Test() 

print Test.__doc__ 
print cls.__init__.__doc__ 
print cls.change.__doc__ 

print Test.var 
print cls.var 
cls.change() 

def PrintDoc(): 
    """ inside PrintDoc """ 
    new = 12 

print PrintDoc.__doc__ 
+3

这不是一个函数,所以它没有文档字符串。只需创建一个主函数并执行'if __name__ =='__main__':main()'。无论如何,这是首选方法。 – Voo

+0

@Voo:您的解决方案中是否存在任何语法错误。 Bcz我试了一下,并开始IndentationError。 – akD

回答

4

您可以打印模块的文档字符串:

"""This module does things""" 


if __name__ == '__main__': 
    print __doc__ 

或者只是有一个main功能:

def main(): 
    """What I do when ran as a script""" 
    pass 

if __name__ == '__main__': 
    print main.__doc__ 
    main() 
+0

精确到点。 –

0

所以,实际上你想打印当前模块的文档字符串,对不对?文档字符串需要是文件中的第一个字符串。您不能像在代码示例中那样在if声明之后放置它 - 这不再是文档字符串。

但如果它是在文件的顶部,你可以简单地

print __doc__ 
+0

感谢您的建议。所以你的意思是说,我不能在任何循环内打印文档字符串,如if,for,while。是吗 ?如果我的理解错误,请纠正我的错误 – akD

+1

@akD:您可以在任何地方打印文档串。文档字符串本身必须位于文件的顶部。 –

相关问题