python 也可以定義靜態(tài)成員變量,就是類的變量。
注意python的靜態(tài)成員變量只能通過 類.變量名 的形式獲取
看下面例子:
class ClassName:
"""docstring for ClassName"""
arg=0
def __init__(self, arg):
self.arg = arg
obj = ClassName(2)
print(obj.arg)
print(ClassName.arg)
輸出結(jié)果:
2
0
[Finished in 0.1s]
說明,通過 Object.var 和ClassName.var 訪問的并不是同一個數(shù)據(jù)。上例中初始化函數(shù)改變的是self.arg這個變量,self就相當(dāng)于Object 。arg和self.arg本身并不是一個變量。在Python的成員函數(shù)中訪問arg的正確形式應(yīng)該是ClassName.arg 。
見下例:
class ClassName:
"""docstring for ClassName"""
arg=0
def __init__(self, arg):
ClassName.arg = arg
obj = ClassName(2)
print(obj.arg)
print(ClassName.arg)
輸出:
2
2
[Finished in 0.1s]
靜態(tài)變量的用處:
class ClassName:
"""docstring for ClassName"""
COUNT=0
def __init__(self, arg):
self.arg = arg
ClassName.COUNT+=1
obj1 = ClassName(1)
obj2 = ClassName(2)
obj3 = ClassName(3)
print(ClassName.COUNT)
# 輸出 3