在類別中的變數和函數中的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?請問是什麼原因呢?
習慣沉默2017-06-28 09:26:34
var1
是類別變數, self.var1
是實例變數, 當你在類別初始化成test2
時, __init__
去尋找自身實例的var1
基,發現沒找到, 那就去基, 也就是test
裡面找, 剛好找到額, 所以直接給你回了
如果還想更深入, 可以穀歌看下類變數/實例變數
和 python descriptor
的相關知識