Python是一門(mén)非常強(qiáng)大的編程語(yǔ)言,它擁有非常豐富且靈活的語(yǔ)法,讓開(kāi)發(fā)者可以輕松地實(shí)現(xiàn)各種功能。其中類(lèi)方法傳參數(shù)的語(yǔ)法也非常簡(jiǎn)潔明了,下面我們來(lái)詳細(xì)了解。
class Person: def __init__(self, name, age): self.name = name self.age = age @classmethod def from_birth_year(cls, name, birth_year): age = date.today().year - birth_year return cls(name, age) person = Person.from_birth_year('Tom', 1990) print(person.age)
從上述代碼可以看出,我們?cè)诙x類(lèi)方法時(shí)使用了裝飾器@classmethod,這表示這是一個(gè)類(lèi)方法。我們通過(guò)類(lèi)方法來(lái)實(shí)例化一個(gè)Person對(duì)象,并將其出生年份和姓名作為參數(shù)傳入。在類(lèi)方法內(nèi)部,我們通過(guò)當(dāng)前年份減去出生年份就可以得到該人的年齡,然后再用這個(gè)年齡和姓名來(lái)創(chuàng)建一個(gè)Person對(duì)象,最后將其返回。
調(diào)用類(lèi)方法時(shí),我們只需要使用類(lèi)名來(lái)調(diào)用即可,就像下面這樣:
person = Person.from_birth_year('Tom', 1990)
這樣我們就得到了一個(gè)名為T(mén)om,出生于1990年的Person對(duì)象。我們可以訪問(wèn)它的age屬性來(lái)獲取它的年齡:
print(person.age)
通過(guò)上述代碼,我們可以發(fā)現(xiàn),在Python中使用類(lèi)方法傳參非常簡(jiǎn)單,只需要加上裝飾器@classmethod即可,同時(shí)將cls作為第一個(gè)參數(shù),來(lái)表示這個(gè)類(lèi)本身。在類(lèi)方法內(nèi)部,可以使用cls來(lái)引用類(lèi)中的屬性和方法。