2015-02-10 16 views
10

Numpy's documentation standards aracılığıyla okuyorum ve nesne özniteliklerinden bahsetmiyor gibi görünüyor - yalnızca sınıf özellikleri. Örneğin, aşağıdakileri nasıl belgeleyebilirim? Numpy'nin stilini kullanarak sınıf ve nesne özelliklerini nasıl belgelemeliyim?

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 

DÜZENLEME

: Sadece ben özelliklerini destekleyen diyor Napoleon geçiş, ancak özellikle sınıf değildir veya örneği niteliklerini ediyorum dikkat etmek istedi.

+3

Python'daki "sınıf" ve "nesne" öznitelikleri arasındaki fark oldukça inceliklidir, bu yüzden farkın standartlarda gözden geçirildiğini düşünüyorum. Sınıf ve örnek özelliklerinin beklediğiniz gibi davranmadığı hakkında bir tartışma için [burada] (http://www.toptal.com/python/python-class-attributes-an-overly-thorough-guide) bir göz atın. Onları python'da. –

cevap

5

Numune'de verilen How to Document dosyasında belirtilenleri denedim. Sınıf özelliklerinin belgelenmesi aşağıdaki gibi ele alınmalıdır. Bir Parametreleri bölümünün altında bulunan bölüm, Özellikleri

, sınıf değişkenleri tanımlamak için kullanılabilir: O örnek özelliklerini anlatarak devam eder

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

kendi belgelerine sahip olmalı ve sadece sıralanabilir isimle.

Bu mantıklı ancak numpy kaynak kodunda bunun hiçbir örneğini bulamıyorum. Bulduğum en yakın ABCPolyBase class'da farklı bir şey yaptı. Bence

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

, _polybase.py sınıfta kullanılan belgeler okunaklı ama Class Attributes kullanım Sfenks AutoDoc özetleri ile çalışacaktır inanmıyorum.

Umarım bu bilgi yardımcı olur.

+0

İyi kazma - teşekkürler! Örnek özniteliklerinin neden belgelenmemesi gerektiğini merak ediyordum. Bunları sınıf özniteliklerinden çok daha faydalı buluyorum (özellikle de @Bi Rico'nun gösterdiği gibi, örnek öznitelikleri sınıf özniteliklerinden dolayı). –

+0

Sınıf veya Örnek Niteliklerini kullanabilmek için Napolyon'u genişletmek zorunda mıyım diye merak ediyorum - bunların belgelerini ayrı ayrı listelemelerine benzemiyor: http: //sphinxcontrib-napoleon.readthedocs .org/en/latest/index.html –

+0

Karmaşıklık belgeleme sınıfı ve örnek nitelikleri hakkında Sphinx'te açık bir sorun var: https://github.com/sphinx-doc/sphinx/issues/3141 – x0s

İlgili konular