如果要创建类变量,则必须在任何类方法之外声明它(但仍在类定义中):
class Example(object):
somevariable = 'class variable'
有了这个,您现在可以访问您的类变量.
>> Example.somevariable
'class variable'
您的示例不起作用的原因是您要为实例变量赋值.
两者之间的区别在于,一旦创建了类对象,就会创建一个类变量.而实例变量将在对象实例化后创建,并且只有在它们被分配后才会创建.
class Example(object):
def doSomething(self):
self.othervariable = 'instance variable'
>> foo = Example()
这里我们创建了一个Example实例,但是如果我们尝试访问其他变量,我们将收到一个错误:
>> foo.othervariable
AttributeError: 'Example' object has no attribute 'othervariable'
由于在doSomething中分配了其他变量 – 我们还没有调用ityet – 它不存在.
>> foo.doSomething()
>> foo.othervariable
'instance variable'
__init__是一种特殊的方法,只要发生类实例化就会自动调用它.
class Example(object):
def __init__(self):
self.othervariable = 'instance variable'
>> foo = Example()
>> foo.othervariable
'instance variable'