class A:
# aa爲類變量
aa = 1
# xy爲實例變量
def __init__(self, x, y):
self.x = x
self.y = y
if __name__ == '__main__':
# a是實例A是一個類
a = A(2, 4)
# 這裏面xy就是實例變量,aa爲類變量,a.aa會優先查找對象的變量,找不到則向上查詢類變量
print(a.aa, a.x, a.y)
print(A.aa)
A.aa = 11
print(a.aa)
a.aa = 100
print(a.aa)
print(A.aa)
聯繫與區別
聯繫
Python類變量被賦值
(1)類的設計裏,
class裏def外,通過變量名能被賦值
def裏通過類對象即類名字的點運算變量名可被賦值
(2)程序裏
通過類對象(類名字)的點運算類名字也可被賦值
Python實例對象變量被賦值
(1)類的設計時
def裏通過self點運算變量名能被賦值,不一定非在init裏,其他已被調用的方法函數裏也行
(2)程序裏
通過實例對象的點運算變量名可被賦值
區別
類變量和實例變量的區別在於:類變量是所有對象共有,其中一個對象將它值改變,其他對象得到的就是改變後的結果;而實例變量則屬對象私有,某一個對象將其值改變,不影響其他對象