Python類方法@classmethod()的具體使用
更新時間:2024年01月16日 09:19:48 作者:酆訫鎻噯
@classmethod 是一個函數修飾符,它表示接下來的是一個類方法,而對于平常我們見到的則叫做實例方法,本文主要介紹了Python類方法@classmethod()的具體使用,具有一定的參考價值,感興趣的可以了解一下
在python中類方法是一種特殊的方法,它與類本身相關聯,而不是與類的實例對象相關聯。
- 類方法的定義。
類方法使用@classmethod()來裝飾,它的第一個參數通常被命名為cls,它指向類的本身,而不是類的實例。類方法可以通過類名或者類的實例來調用。
class MyClass:
@classmethod
def my_class_method(cls, arg1, arg2):
# do something with cls, arg1, and arg2
- 類方法的用途。
- 在實例之前做的操作。
- 在類的所有實例之間共享某些屬性和方法。
- 提供一種替代構造函數的方式。
class MyClass:
count = 0
def __init__(self):
MyClass.count += 1
@classmethod
def get_count(cls):
return cls.count
a = MyClass()
b = MyClass()
c = MyClass()
print(MyClass.get_count()) # 輸出 3
提供一種替代構造函數的方式
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
@classmethod
def from_birth_year(cls, name, birth_year):
age = datetime.date.today().year - birth_year
return cls(name, age)
person = Person.from_birth_year('Alice', 1990)
print(person.name) # 輸出 'Alice'
print(person.age) # 輸出 33
在這個示例中,我們定義了一個名為from_birth_year的類方法。它接受一個名字和出生年份作為參數,并返回一個Person實例。使用類方法,我們可以提供一種替代構造函數的方式。
用類調用類方法,得到的結果是一個類實例。
到此這篇關于Python類方法@classmethod()的具體使用的文章就介紹到這了,更多相關Python @classmethod內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python使用OPENCV的目標跟蹤算法實現自動視頻標注效果
這篇文章主要介紹了Python使用OPENCV的目標跟蹤算法進行簡單的自動視頻標注,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09

