python的sphinx中var,cvar和ivar有什么区别?

时间:2016-12-09 02:33:09

标签: python python-sphinx

我正在阅读sphinx文档页面,具有讽刺意味的是,关于var,ivar和cvar之间差异的文档非常缺乏。我想知道是否有人可以解释内联代码中每个不同名称空间之间的区别。

示例:

class foo(object):
    """
      :var str first:
      :ivar str last:
      :cvar str middle:
    """

这些狮身人面像标签中的每一个都是如何彼此不同的,我如何知道哪一个是正确使用的设计?

2 个答案:

答案 0 :(得分:11)

当然,

var是一个通用变量。如果您不在乎对正在记录的变量进行任何进一步的区分,请使用此选项。

ivar是"实例变量",或者是在实例对象(类的实例)上设置的变量。通常,这些将在__init__方法中定义(在Python中)。

cvar是"类变量",或直接在类对象上设置的变量。通常,这将在类语句中设置,但在类中的任何特定方法之外。

以下是一个例子:

class SomeClass(object):

    cvar = 'I am a class variable'

    def __init__(self):
        self.ivar = 'I am an instance variable'

答案 1 :(得分:1)

也许不要担心thesr特定标签之间的区别,如果你需要使用它,只需坚持使用'var',因为文档表明:

还有许多其他信息字段,但它们可能是多余的: ...(包含)... var,ivar,cvar:变量的描述。 ...

请参阅:

http://thomas-cokelaer.info/tutorials/sphinx/docstring_python.html