Python中的靜態(tài)成員變量

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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容