搜尋

首頁  >  問答  >  主體

python 中的類別變數

在類別中的變數和函數中的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?請問是什麼原因呢?

phpcn_u1582phpcn_u15822735 天前786

全部回覆(1)我來回復

  • 習慣沉默

    習慣沉默2017-06-28 09:26:34

    var1是類別變數, self.var1是實例變數, 當你在類別初始化成test2時, __init__去尋找自身實例的var1基,發現沒找到, 那就去基, 也就是test裡面找, 剛好找到額, 所以直接給你回了

    如果還想更深入, 可以穀歌看下類變數/實例變數python descriptor的相關知識

    回覆
    0
  • 取消回覆