Python 中的 classmethod()
類方法接收類本身作為其第一個引數。這樣我們就可以在不先從類中建立例項的情況下在類中呼叫方法。我們只需在類中包含的方法宣告前使用裝飾器 @classmethod,然後就可以直接訪問該方法。以下是 classmethids 的主要特徵。
類方法繫結到類,不依賴於類例項化的使用。
類方法可以修改類,然後傳播到類的所有例項。
使用 classmethod
在下面的示例中,我們建立了一個名為 WeekDay 的類,並在其中建立了一個名為 daynames 的方法。然後我們在不先例項化該類的情況下訪問此方法,這意味著沒有從該類建立任何物件。
示例
class WeekDay:
day_name = ['Mon','Tue','Wed','Thu','Fri']
# Applying the class method
@classmethod
def daynames(n):
print('The WeekDays are', n.day_name)
WeekDay.daynames()
# OR
WeekDay().daynames()輸出
執行以上程式碼會得到以下結果 -
The WeekDays are ['Mon', 'Tue', 'Wed', 'Thu', 'Fri'] The WeekDays are ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
不使用 classmethod
若不使用類方法,可透過申明無類的物件來實現相同結果。這是我們需要類方法的原因。
示例
def daynames():
day_name = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
print('The WeekDays are', day_name)
daynames()輸出
執行以上程式碼會得到以下結果 -
The WeekDays are ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP