为什么在__init__之外定义一个对象变量?

时间:2014-08-06 11:13:51

标签: python

我有时会在__init__之外定义一个对象变量。 plint和我的IDE(PyCharm)抱怨。

class MyClass():
    def __init__(self):
        self.nicevariable = 1   # everyone is happy

    def amethod(self):
        self.uglyvariable = 2   # everyone complains

plint输出:

W:  6, 8: Attribute 'uglyvariable' defined outside __init__ (attribute-defined-outside-init)

为什么这是不正确的做法?

1 个答案:

答案 0 :(得分:15)

Python允许您随时添加和删除属性。在__init__

处没有这样做有两个问题
  1. 您的定义并非全部在一个地方
  2. 如果您在某个功能中使用它,则可能尚未对其进行定义