使用 self.variable 语法创建变量和不创建变量有什么区别?
我正在对其进行测试,我仍然可以从一个实例访问两者:
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
所以我认为 self 在初始化中具有特殊的作用。但是,我只是不太明白它是什么。