python 類的靜態方法和類方法

2021-08-22 15:08:11 字數 955 閱讀 3133

1.靜態方法

#使用@staticmethod修飾

#不需要傳入引數,類和類的例項物件都可以呼叫

#沒有引數的方法,如果未宣告靜態方法的話,例項物件呼叫將會出錯

#1class a():

@staticmethod() #宣告靜態方法

def printa(): #無需引數

print('a')

a.printa() #類名直接呼叫

a = a()

a.printa() #例項物件呼叫

>> a

>> a

#2class b():

printb():

print('b') #未宣告靜態方法

b.printb() #類名直接呼叫

b = b()

b.printb()

#實質上是把b作為引數傳入函式 b.printb() >> b.print(b)

>>b

>>'''typeerror: printb() takes 0 positional arguments but 1 was given'''

2.類方法

#類方法在python中使用比較少,類方法傳入的第乙個引數為cls,是類本身。

#並且,類方法可以通過類直接呼叫,或通過例項直接呼叫。但無論哪種呼叫方式,最左側傳入的引數一定是類本身。

#使用@classmethod修飾

class a():

@classmethod

def get_classtype(cls,name):

print(type(cls),name)

a.get_classtype('alice') #通過類直接呼叫,傳入的第一引數必須是cls

a = a()

a.get_classtype('tom') #通過例項物件呼叫

python 靜態方法和類方法

python 靜態方法和類方法 class testclassmethod object method method hoho def init self self.name leon def test1 self print test1 print self classmethod def tes...

python中靜態方法和類方法

方法是作為類屬性儲存的函式 def get size self pass在python2,3中的不同點。2 pizza.get size 會報乙個未繫結的函式的錯誤 3 pizza.get size 會報乙個缺少引數的錯誤,即,python3可以動態的傳入方法所屬於的類的任意乙個例項 靜態方法 靜態...

Python之靜態方法和類方法

python中,方法有三種,例項方法,靜態方法和類方法。例項方法 需傳入例項物件self,適合用於處理與例項相關的。靜態方法 無需傳入例項物件和類物件,適合用於處理類本地相關的。類方法 需傳入類物件,適合用於處理類層級相關的。以上適用範圍並無絕對,看個人理解應用。在python 3.x中,1 有用s...