在类中的变量和在函数中的self.var1是一样的?为啥是一样的?
class test:
var1=2
def __init__(self):
print self.var1
print self.var1 is test.var1
if __name__=="__main__":
test2=test()
函数运行之后的是
root@lpp-ThinkPad-T420:~/python_code# python test6.py
2
True
这里为啥类变量var1又是 self.var1?请问是什么原因呢?
var1
是类变量,self.var1
是实例变量, 当你在类初始化成test2
时,__init__
去寻找自身实例的var1
,发现没找到, 那就去基类找, 也就是test
里面找, 刚好找到额, 所以直接给你返回了如果还想更加深入, 可以谷歌看下
类变量/实例变量
和python descriptor
的相关知识