Skip to main content
 首页 » 编程设计

python之如何在 Python 中正确声明实例字段

2025年05月04日14虾米姐

这可能是一个愚蠢/微不足道的问题,但我对这件事感到困惑。

什么是声明实例字段的鼓励(pythonic)方式 - 在构造函数中,还是在类主体本身中?

class Foo: 
    """ Foo class """ 
 
    # While we are at it, how to properly document the fields? 
    bar = None 
 
    def __init__(self, baz): 
        """ Make a Foo """ 
 
        self.bar = baz 

或者:

class Foo: 
    """ Foo class """ 
 
    def __init__(self, baz): 
        """ Make a Foo """ 
 
        self.bar = baz 

请您参考如下方法:

这是一个期望问题。阅读您的代码的人会期望在类的顶层定义的属性是类属性。事实上,您总是在 __init__ 中替换它们只会造成困惑。

出于这个原因,您应该选择选项 2,在 __init__ 中定义实例属性。

在记录属性方面,选择一种文档字符串风格并坚持下去;我喜欢Google's , 其他选项包括 numpy's .

class Foo: 
    """A class for foo-ing bazs.  
 
    Args: 
      baz: the baz to foo 
 
    Attributes: 
      bar: we keep the baz around  
 
    """ 
 
    def __init__(self, baz): 
        self.bar = baz