2016-02-18 78 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:您可以在任何地方打印文檔串。文檔字符串本身必須位於文件的頂部。 –

相關問題