實例變量:已聲明的用來復(fù)制的變量
類變量:類里面的變量壳坪,類里面沒有的變量可以在類初始化后在外邊聲明识藤。
實例變量可以用類來聲明,只能用類里面的已有變量咳秉。
用雷生命的實例變量,聲明后可以自己再加變量例如下面代碼的:
‘’‘
class aa:
w = 10
def __init__(self):
self.x = 11
self.y = 12
def add(self):
return self.x + self.y
a.t = 14
a.q = 15
print (a.t, a.q) //輸出14 15
# 好了再來個提升吧
# 程序繼續(xù)增加,下列三個print語句都能正確執(zhí)行么鸯隅?為何澜建?
b = aa()
print (b.x, b.y) //正確輸出11 12
print (b.t, b.q) //出錯,因為不是一個實例了
’‘’
部分內(nèi)容來自引文:
Python類變量和實例變量區(qū)別
Python變量的本質(zhì):被賦值
1 普通python變量(非類相關(guān)變量)很容易理解滋迈,在被賦值后即變量存在霎奢,可讀可寫
2 Python類的變量(類變量和實例對象變量)以某種方式在某地方被賦值,即存在饼灿,可被讀寫
2.1 Python類變量被賦值
(1)類的設(shè)計里幕侠,
class里def外,通過變量名能被賦值
def里通過類對象即類名字的點運算變量名可被賦值
(2)程序里
通過類對象(類名字)的點運算類名字也可被賦值
2.2 Python實例對象變量被賦值
(1)類的設(shè)計時
def里通過self點運算變量名能被賦值碍彭,不一定非在init里晤硕,其他已被調(diào)用的方法函數(shù)里也行
(2)程序里
通過實例對象的點運算變量名可被賦值
例子:
‘’‘
class aa:
w = 10
def __init__(self):
self.x = 11
self.y = 12
def add(self):
return self.x + self.y
a = aa()
print (a.add()) //輸出23
# 下邊兩條指令各起何作用?結(jié)果是輸出兩個 20 么庇忌?還是兩個13舞箍?還是?
aa.w = 20
a.w = 13
print (aa.w, a.w) //輸出20 13
# 程序繼續(xù)增加如下皆疹,怎樣理解這t和q呢疏橄?他們是實例變量
a.t = 14
a.q = 15
print (a.t, a.q) //輸出14 15
# 程序繼續(xù)增加如下,怎樣理解這m和n呢?他們是類變量
aa.m = 30
aa.n = 40
print (aa.m, aa.n) //輸入30 40
# 好了再來個提升吧
# 程序繼續(xù)增加,下列三個print語句都能正確執(zhí)行么捎迫?為何晃酒?
b = aa()
print (b.x, b.y) //正確輸出11 12
print (b.t, b.q) //出錯,因為不是一個實例了
print (b.m, b.n) //正確輸出30 40
’‘’