Sind Variablen in einer Klasse dasselbe wie self.var1 in einer Funktion? Warum sind sie gleich?
class test:
var1=2
def __init__(self):
print self.var1
print self.var1 is test.var1
if __name__=="__main__":
test2=test()
Nachdem die Funktion ausgeführt wurde,
root@lpp-ThinkPad-T420:~/python_code# python test6.py
2
True
Warum ist die Klassenvariable var1 hier auch self.var1? Was ist der Grund?
var1
是类变量,self.var1
是实例变量, 当你在类初始化成test2
时,__init__
去寻找自身实例的var1
,发现没找到, 那就去基类找, 也就是test
里面找, 刚好找到额, 所以直接给你返回了如果还想更加深入, 可以谷歌看下
类变量/实例变量
和python descriptor
的相关知识