2017-04-15 49 views
1

啓動一個Python項目,寫了幾百行代碼,創建了一些類,立即獲得滿足,一切都很好。如何保持對Python類的概述?如何推斷數據類型?

幾個月後回到項目,我絕望地失去了。比意大利麪條更糟糕:現在的代碼在我看來就像是一百個類成員函數的混亂集合。這些功能中的大多數功能只有兩到十行長;他們的工作和他們的目的都非常清楚 - 除了我不知道函數參數,返回值和相關類成員變量的數據類型是什麼。因此,我無法得到我的課程如何相互關聯的大圖。

如何在這種情況下進行?如何獲得由C++中的.h頭文件提供的高級概述?如何將這些信息插入源文件,以便下次我不需要重做此研究?

+0

在適當的地方使用[docstrings](https://www.python.org/dev/peps/pep-0257/)很長的路要走。 – spectras

回答

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__特殊屬性的功能/方法,你可以從蟒蛇訪問。直接或使用pydoc模塊。作爲獎勵,此類文檔可直接從Python控制檯使用,使用help(something)。您還應該查看sphinx-doc,這是用於記錄python本身的工具。它不是內部源代碼,但它是爲記錄python代碼而量身定製的,並且非常方便。

至於你關心的實際類型,通常你不會指定具體的類型。他們不重要。重要的是你可以用它們做什麼,因爲python代碼通常使用duck typing。即:只要您可以調用其foo方法並訪問其bar屬性,並且它們的行爲與您的期望相同,則您不關心自己的論點。

+0

建議您使用冗長的文檔字符串來解決編碼學科_ex ante_。我的問題是關於如何分析給定的混亂_ex post_。 –

+0

唉,除了用調試器運行代碼並遵循它之外,沒有什麼可以做的。 – spectras