定義:在類里面把一個(gè)方法綁定給類,說白了類方法是給類用的,該方法由裝飾器@classmethod所裝飾,類.綁定
到類的方法(),會(huì)把類本身當(dāng)做第一個(gè)參數(shù)自動(dòng)傳給綁定到類的方法中。
classA:#創(chuàng)建父類
x=1
@classmethod#使用裝飾器,變?yōu)轭惖慕壎ǚ椒?/p>
deftest(cls):#定義了類的方法
print(cls,cls.x)#拿掉一個(gè)類的內(nèi)存地址后,就可以實(shí)例化或者引用類的屬性了
classB(A):#子類B,B中沒有test類的綁定方法,就去父類中找,并將類名當(dāng)?shù)谝粋€(gè)位置參數(shù)自動(dòng)傳到方法里
x=2
B.test()#調(diào)用test類的綁定方法
print(B.test)#查看B.test的屬性
-------------輸出結(jié)果----------------
2
>#test是A的綁定方法,這里B繼承了
應(yīng)用場景:
classDate:
def__init__(self,year,month,day):
self.year=year
self.month=month
self.day=day
@classmethod
defnow(cls):
t=time.localtime()
obj=cls(t.tm_year,t.tm_mon,t.tm_mday)
returnobj
@classmethod
deftomorrow(cls):
t=time.localtime(time.time()+86400)
obj=cls(t.tm_year,t.tm_mon,t.tm_mday)
returnobj
classEuroDate(Date):#__str__,打印由這個(gè)類產(chǎn)生的對(duì)象時(shí),會(huì)觸發(fā)執(zhí)行
def__str__(self):#定義在類內(nèi)部,必須返回一個(gè)字符串類型
return"年:%s,月:%s,日:%s"%(self.year,self.month,self.day)
e1=EuroDate(2016,12,13)#實(shí)例化對(duì)象e1
print(e1)
e2=EuroDate.now()#調(diào)用類的綁定方法,并賦值給e2
print(e2)#打印返回結(jié)果
e3=EuroDate.tomorrow()#調(diào)用類的綁定方法,并賦值給e3
print(e3)#打印返回結(jié)果
print(EuroDate.now)#查看數(shù)據(jù)類型
print(EuroDate.tomorrow)#查看數(shù)據(jù)類型
以上內(nèi)容為大家介紹了python類方法,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。