2015-02-10 14 views
10

我一直在閱讀Numpy's documentation standards,它似乎沒有提及對象屬性 - 只有類屬性。我該如何使用Numpy風格來記錄類和對象的屬性?

因此,例如,我將如何記錄以下內容?

class ClassA(object): 
    """Short description of ClassA 

    Long description of ClassA 

    Parameters 
    ---------- 
    param : param_type, optional 
     param_description 

    Attributes (class) 
    ---------- 
    class_attr : class_attr_type 
     class_attr_description 

    Attributes (object) 
    ---------- 
    obj_attr : obj_attr_type 
     obj_attr_description 

    """ 

    class_attr = 'something' 

    def __init__(self, arg='something else'): 
     self.obj_attr = arg 

編輯: 只是想指出,我切換到Napoleon表示,它支持的屬性,但沒有具體的類或實例屬性。

+3

python中的「class」和「object」屬性之間的區別非常微妙,所以我認爲這些區別在標準中被掩蓋了。看一看[這裏](http://www.toptal.com/python/python-class-attributes-an-overly-thorough-guide)討論類和實例屬性的行爲不像許多人期望的那樣他們在蟒蛇。 – 2015-02-13 00:11:00

回答

5

我嘗試了numpy中提供的How to Document文件中提到的內容。它提到類屬性的文檔應按如下方式處理。

的屬性部分,位於下方的參數部分,可以用來形容類變量:

Attributes 
---------- 
x : float 
    The X coordinate. 
y : float 
    The Y coordinate. 

它接着提到,實例屬性應該有自己的文檔和唯一上市按名字。

這很有道理,但我在numpy源代碼中找不到任何這樣的例子。我發現最接近的地方做了ABCPolyBase class

Attributes 
---------- 
coef : (N,) ndarray 
... 
Class Attributes 
---------------- 
maxpower : int 

在我看來,在_polybase.py類中使用的文檔清晰,但我不相信Class Attributes使用將與獅身人面像車博士總結工作。

我希望這些信息對您有所幫助。

+0

好挖 - 謝謝!我想知道爲什麼實例屬性應該沒有記錄 - 我發現那些比類屬性更有用(特別是因爲@Bi Rico顯示,實例屬性取代了類屬性)。 – 2015-02-16 18:36:12

+0

我想知道如果我將不得不延長拿破崙才能夠使用類或實例屬性 - 它看起來不像他們在文檔中單獨列出那些: http://sphinxcontrib-napoleon.readthedocs .org/en/latest/index.html – 2015-02-19 19:40:18

+0

獅身人面像上有一個關於混淆記錄類和實例屬性的問題:https://github.com/sphinx-doc/sphinx/issues/3141 – x0s 2017-05-09 11:51:33

相關問題