導航:首頁 > 編程語言 > python中靜態變數

python中靜態變數

發布時間:2023-08-19 06:47:10

python的類的靜態成員變數是怎麼定義的

classFoo:
staticVar=0#這個就是靜態變數



如果是靜態方法,可以使用@staticmethod標注。

Ⅱ python 為什麼要使用靜態方法

Python使用靜態方法類似函數工具使用,一般盡量少用靜態方法。
Python的靜態方法和類成員方法都可以被類或實例訪問,兩者概念不容易理清,但還是有區別的:
1)靜態方法無需傳入self參數,類成員方法需傳入代表本類的cls參數;
2)從第1條,靜態方法是無法訪問實例變數的,而類成員方法也同樣無法訪問實例變數,但可以訪問類變數;
3)靜態方法有點像函數工具庫的作用,而類成員方法則更接近類似Java面向對象概念中的靜態方法。

Ⅲ Python中靜態方法和類方法的區別

面相對象程序設計中,類方法和靜態方法是經常用到的兩個術語。
邏輯上講:類方法是只能由類名調用;靜態方法可以由類名或對象名進行調用。
在C++中,靜態方法與類方法邏輯上是等價的,只有一個概念,不會混淆。
而在python中,方法分為三類實例方法、類方法、靜態方法。代碼如下:
class Test(object):
def InstanceFun(self):
print("InstanceFun");
print(self);
@classmethod
def ClassFun(cls):
print("ClassFun");
print(cls);
@staticmethod
def StaticFun():
print("StaticFun");
t = Test();
t.InstanceFun();# 輸出InstanceFun,列印對象內存地址「」
Test.ClassFun(); # 輸出ClassFun,列印類位置
Test.StaticFun(); # 輸出StaticFun
t.StaticFun(); # 輸出StaticFun
t.ClassFun(); # 輸出ClassFun,列印類位置
Test.InstanceFun(); # 錯誤,TypeError: unbound method instanceFun() must be called with Test instance as first argument

Test.InstanceFun(t); # 輸出InstanceFun,列印對象內存地址「」
t.ClassFun(Test); # 錯誤 classFun() takes exactly 1 argument (2 given)
可以看到,在PYTHON中,兩種方法的主要區別在於參數。實例方法隱含的參數為類實例self,而類方法隱含的參數為類本身cls。
靜態方法無隱含參數,主要為了類實例也可以直接調用靜態方法。

所以邏輯上類方法應當只被類調用,實例方法實例調用,靜態方法兩者都能調用。主要區別在於參數傳遞上的區別,實例方法悄悄傳遞的是self引用作為參數,而類方法悄悄傳遞的是cls引用作為參數。
Python實現了一定的靈活性使得類方法和靜態方法,都能夠被實例和類二者調用

Ⅳ python中關於類的問題求解

作業要自己做才能提高水平,只說原理,這個問題,定義長寬高,和計算體積,都不是難點,主要是如何知道實例化數量。

Python的特性是,類的變數,如果是在類裡面直接申明,那麼就是靜態變數,這個類的所有對象都共享共一個變數,用類名來訪問。在這個問題中可以用來計數,例如:

classBox:
count=0
def__init__(self,l,w,h):
Box.count+=1

count變數用來統計對象個數,在類的初始化函數__init__中加1,每初始化一個對象就能使統計值加1了。

而在類的函數中申明的self的變數,就是類的成員變數,每個實例化的對象都有一份自己的拷貝,例如

classBox:
count=0
def__init__(self,l,w,h):
Box.count+=1
self.length=l
self.width=w
self.height=h
self.volumn=l*w*h

self.length就是長度,其他的類推,比如要測試並列印出屬性

b1=Box()
b1.length
b1.width
b1.height
b1.volumn

我發覺我基本都把這題做完了。。。。

閱讀全文

與python中靜態變數相關的資料

熱點內容
acmc用什麼編譯器 瀏覽:230
golangweb編譯部署 瀏覽:923
怎樣踩東西解壓 瀏覽:969
單片機核心板外接鍵盤 瀏覽:396
怎樣打開自己的微信文件夾 瀏覽:424
單片機紅外測距原理 瀏覽:268
phpxdebug擴展 瀏覽:757
建築樓層凈高演算法 瀏覽:1000
怎麼關閉智聯app求職狀態 瀏覽:418
pdf的文件夾怎麼列印 瀏覽:752
延拓演算法初值 瀏覽:786
首次適應演算法都不滿足的話怎麼辦 瀏覽:19
php56加密 瀏覽:556
金立手機app怎麼設置浮窗 瀏覽:496
程序員沒有社會地位 瀏覽:963
榮耀app怎麼解鎖 瀏覽:594
php程序員學歷 瀏覽:636
c語言編譯可以嗎 瀏覽:201
脂硯齋重評石頭記pdf 瀏覽:756
三星冰箱壓縮機哪裡產 瀏覽:429