要在類中使用靜態方法,需在靜態方法前面加上@staticmethod標記符,以表示下面的成員函式是靜態函式。
使用靜態方法的好處
:其函式不需要self引數,
可以通過類呼叫該方法,不需要定義該類例項(當然通過類例項呼叫也沒有問題)。
類方法可以通過類或它的例項來呼叫,但
該方法的
第乙個引數cls是定義該方法的類物件而
不是例項物件
。
#coding:utf-8
class a:
def function(self):
print "call nomal method"
@staticmethod #靜態方法
def function1():
print "call static method"
@classmethod #類方法
def function2(cls):
print "call class method"
print "cls.__name__ is ",cls.__name__
if __name__ == '__main__':
a = a() #類例項化
a.function() #呼叫類中普通方法
a.function1() #呼叫類中靜態方法
a.function2() #呼叫類中類方法
結果:
call nomal method
call static method
call class method
cls.__name__ is a
Python中的類方法和靜態方法
1.類方法 是類物件所擁有的方法,需要用修飾器 classmethod來標識其為類方法,對於類方法,第乙個引數必須是類物件,一般以cls作為第乙個引數 當然可以用其他名稱的變數作為其第乙個引數,但是大部分人都習慣以 cls 作為第乙個引數的名字,就最好用 cls 了 能夠通過例項物件和類物件去訪問。...
python中,類方法和靜態方法區別。
面相物件程式設計中,類方法和靜態方法是經常用到的兩個術語。邏輯上講 類方法是只能由類名呼叫 靜態方法可以由類名或物件名進行呼叫。在c 中,靜態方法與類方法邏輯上是等價的,只有乙個概念,不會混淆。而在python中,方法分為三類例項方法 類方法 靜態方法。如下 class test object de...
python中的類方法和靜態方法
python中至少有三種比較常見的方法型別,即例項方法,類方法 靜態方法。它們是如何定義的呢?如何呼叫的呢?它們又有何區別和作用呢?首先,這三種方法都定義在類中。例項方法 定義 第乙個引數必須是例項物件,該引數名一般約定為 self 通過它來傳遞例項的屬性和方法 也可以傳類的屬性和方法 呼叫 只能由...