__init__(self,[參數(shù)名]) | 對(duì)象創(chuàng)建時(shí)自動(dòng)調(diào)用的方法 |
__str__(self,[參數(shù)名]) | 函數(shù)有返回值,當(dāng)打印對(duì)象名的時(shí)候自動(dòng)調(diào)用 |
__del__(self) | 當(dāng)刪除引用時(shí)自動(dòng)調(diào)用 |
__call__(elf,[參數(shù)名]) | 當(dāng)執(zhí)行對(duì)象名()時(shí)自動(dòng)調(diào)用即把對(duì)象當(dāng)成函數(shù)使用 |
看上圖我們只是創(chuàng)建了cat對(duì)象,并沒有調(diào)用__init__方法,但是卻執(zhí)行了方法里面的方法體,是因?yàn)樵趧?chuàng)建對(duì)象時(shí)python自動(dòng)觸發(fā)了。
__init__方法有什么作用:
定義一個(gè)類時(shí),常常要定義屬性和方法,屬性是類的一個(gè)特征,而方法是它能做的事情。
所有的人都有名字和年齡,所以我們要定義一個(gè)Person類,擁有兩個(gè)屬性名字和年齡
如果在類里寫如下圖
class Person(): name='jimi' age=12 def run(self): print('run') person1=Person() person2=Person()
那么person1和person2對(duì)象擁有了Person的屬性,但是此刻他倆的屬性一樣,可是并不符合每個(gè)人的特征?。棵總€(gè)人的名字和年齡不一致的。那怎么樣才能創(chuàng)造出對(duì)象不一樣的屬性值,這里就用__init__
class Person: def __init__(self,name,age): # name=對(duì)象的那個(gè)name,age=對(duì)象的那個(gè)age self.name=name self.age=age person1=Person('meimei',12) # 打印person1的屬性 meimei 12 print(person1.name,person1.age) person2=Person('john',13) # # 打印person1的屬性 john 13 print(person2.name,person2.age)
__str__是用來打印對(duì)象時(shí)返回一個(gè)值,所以__str__是有return 語句的。如果不用__str__打印對(duì)象,對(duì)象就是一個(gè)地址
class Person: def __init__(self,name,age): # name=對(duì)象的那個(gè)name,age=對(duì)象的那個(gè)age self.name=name self.age=age # def __str__(self): # return '這是name:{},這是age:{}'.format(self.name,self.age) person1=Person('meimei',12) #打印結(jié)果__main__.Person object at 0x0000025C1F932C50> print(person1)
class Person: def __init__(self,name,age): # name=對(duì)象的那個(gè)name,age=對(duì)象的那個(gè)age self.name=name self.age=age # def __str__(self,*krg,**krgs): # return '這是name:{},這是age:{}'.format(self.name,self.age) #類方法 @classmethod def test1(cls): print('我是類方法')
方法前用裝飾器@classmethod修飾。第一個(gè)參數(shù)為cls代表類
類方法特點(diǎn):類方法里面不能調(diào)用普通方法
class Person: def __init__(self,name,age): # name=對(duì)象的那個(gè)name,age=對(duì)象的那個(gè)age self.name=name self.age=age # def __str__(self): # return '這是name:{},這是age:{}'.format(self.name,self.age) def run(self): Person.test1() Person.test() print('我是run') @classmethod def test1(cls): print('我是類方法') @staticmethod def test(*krgs): Person.test1() print('我是靜態(tài)方法')
靜態(tài)方法用裝飾器@staticmethod修飾,無cls,self參數(shù)
對(duì)象名.靜態(tài)方法名()
類名.靜態(tài)方法名()
普通方法中:
靜態(tài)方法:
類方法:
到此這篇關(guān)于Python類方法總結(jié)講解的文章就介紹到這了,更多相關(guān)Python類方法總結(jié)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
標(biāo)簽:渭南 辛集 許昌 西安 七臺(tái)河 贛州 濰坊 雅安
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python類方法總結(jié)講解》,本文關(guān)鍵詞 Python,類,方法,總結(jié),講解,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。