使用self.variable语法创建变量和创建一个变量之间有什么区别?在Python类中,使用自身语法创建变量和创建一个变量之间有什么区别?
我测试出来,我仍然可以从一个实例访问两个:
class TestClass(object):
j = 10
def __init__(self):
self.i = 20
if __name__ == '__main__':
testInstance = TestClass()
print testInstance.i
print testInstance.j
但是,如果我换了self
的位置,会导致错误。
class TestClass(object):
self.j = 10
def __init__(self):
i = 20
if __name__ == '__main__':
testInstance = TestClass()
print testInstance.i
print testInstance.j
>>NameError: name 'self' is not defined
所以我推测,自己在初始化一个特殊的角色..但是,我只是不太明白是什么。
由于'了'是一个类变量,你也可以访问'美孚.a'直接 –
@NathanVillaescusa非常真实。 – Amber
另一件事,如果foo的'__init__'方法,你改变'self.a',你该实例这么做而已,所以'Foo.a'依然不变。 –