面向?qū)ο?/h1>

多繼承

所謂多繼承巧鸭,即子類有多個(gè)父類旦委,并且具有它們的特征

代碼為先定義一個(gè)父類

classA:

defprintA(self):

print('----A----')

再定義一個(gè)父類(-.-!)

classB:

defprintB(self):

print('----B----')

定義子類

lassC(A,B):

defprintC(self):

print('----C----')

這里面的子類就可以繼承兩個(gè)父類草讶,并且自己可以添加自己的函數(shù)方法

如果子類調(diào)用父類方法,而父類被調(diào)用的方法重復(fù)了,那么就會(huì)調(diào)用第一個(gè)父類的方法

在子類中父類方法里面的方法也可以調(diào)用莹痢,是一級(jí)一級(jí)向上找的,比方父類方法a里面有個(gè)其他類的方法b,子類c如果想調(diào)用c竞膳,就可以直接在父類里面實(shí)現(xiàn)

子類重寫覆蓋父類

所謂重寫航瞭,就是子類中,有一個(gè)和父類相同名字的方法坦辟,在子類中的方法會(huì)覆蓋掉父類中同名的方法

子類中如果有父類方法刊侯,就會(huì)直接覆蓋父類的方法

如果就只想調(diào)用父類的方法,可以在子類蟲谷方法的后添加super().__init__(name)格式

多態(tài)

Python(鴨子語言)

“當(dāng)看到一只鳥走起來像鴨子锉走、游泳起來像鴨子滨彻、叫起來也像鴨子,那么這只鳥就可以被稱為鴨子挠日〈粒”表明python是弱類型語言,不需要定義類型

所謂多態(tài):定義時(shí)的類型和運(yùn)行時(shí)的類型不一樣嚣潜,此時(shí)就成為多態(tài)

·Python “鴨子類型”

‘’’

python是一種弱類型語言冬骚,沒有類型限制。

變量的類型永遠(yuǎn)是通過右側(cè)的值判斷的懂算。

方法中的參數(shù)只冻,傳遞任何值都行。但是要考慮方法內(nèi)部的業(yè)務(wù)邏輯计技。

多態(tài):

1喜德、父類作為參數(shù),可以傳遞父類和子類對(duì)象

2垮媒、接口作為參數(shù)舍悯,只能傳遞實(shí)現(xiàn)對(duì)象

所以有兩種理解:

1、python不支持多態(tài):

python是弱類型睡雇,沒有類型限定萌衬,無法區(qū)分父和子,或者說接口和實(shí)現(xiàn)類

2它抱、python處處是多態(tài)

python是弱類型秕豫,沒有類型限定,傳遞任何內(nèi)容都行

類屬性和實(shí)例屬性

類屬性

就是公有的方法里面的屬性观蓄,沒有被self定義

實(shí)例屬性

就是被定義值的屬性混移,在對(duì)象里面被定義self特定值

class People(object):

country = 'china' #類屬性

print(People.country)

p = People()

print(p.country)

p.country = 'japan'

print(p.country) ?????#實(shí)例屬性會(huì)屏蔽掉同名的類屬性

print(People.country)

del p.country ???#刪除實(shí)例屬性

print(p.country)

在調(diào)用類方法時(shí)候,對(duì)象會(huì)自己創(chuàng)建一個(gè)環(huán)境把類方法的地址復(fù)制進(jìn)去侮穿,當(dāng)你做修改的時(shí)候歌径,修改的只是對(duì)象里面的函數(shù),不影響類方法

靜態(tài)方法和類方法

類方法@classmethod方法里面盡量寫(cls)

可以通過實(shí)例對(duì)象和類對(duì)象都可以訪問方法

class People(object):

country = 'china'

@classmethod

def getCountry(cls):

print(type(cls))

print(cls)

return cls.country

p = People()

p.country=1

print(p.getCountry())

print People.getCountry()

在例子中亲茅,不管調(diào)用的是類方法還是實(shí)例方法都打印的是china

他們的指向都是一樣的沮脖,都指向__main__.People

類方法可以用來修改類屬性

class People(object):

country = 'china'

@classmethod

def getCountry(cls):

return cls.country

@classmethod

def setCountry(cls,country):

cls.country = country

p = People()

print(p.getCountry())

print(People.getCountry())

p.setCountry('japan')

print(p.getCountry())

print(People.getCountry())

Setmethod中的cls是用來修改getCountry中的cls值金矛,而此cls值等同于類屬性people里面的country = 'china',所以把country進(jìn)行了修改

從類方法和實(shí)例方法以及靜態(tài)方法的定義形式就可以看出來勺届,類方法的第一個(gè)參數(shù)是類對(duì)象cls,那么通過cls引用的必定是類對(duì)象的屬性和方法娶耍;而實(shí)例方法的第一個(gè)參數(shù)是實(shí)例對(duì)象self免姿,那么通過self引用的可能是類屬性、也有可能是實(shí)例屬性(這個(gè)需要具體分析)榕酒,不過在存在相同名稱的類屬性和實(shí)例屬性的情況下胚膊,實(shí)例屬性優(yōu)先級(jí)更高。

靜態(tài)方法

需要通過修飾器@staticmethod來進(jìn)行修飾想鹰,靜態(tài)方法不需要多定義參數(shù)

class People(object):

country = 'china'

__num = 100

@classmethod

def getCountry(cls):

return cls.country

@staticmethod

def myStaticMethod():

print('myStaticMethod...')

print(People.__num)

p = People()

p.country=1

print(p.getCountry())

print(People.getCountry())

print(p.myStaticMethod())

print(People.myStaticMethod())

此方法中p.country=1是在p中添加了一個(gè)屬性紊婉,不改變類屬性,而用靜態(tài)方法調(diào)用對(duì)象時(shí)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者

  • 序言:七十年代末辑舷,一起剝皮案震驚了整個(gè)濱河市喻犁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌何缓,老刑警劉巖肢础,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異碌廓,居然都是意外死亡传轰,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門谷婆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來慨蛙,“玉大人,你說我怎么就攤上這事纪挎∑谄叮” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵廷区,是天一觀的道長(zhǎng)唯灵。 經(jīng)常有香客問我,道長(zhǎng)隙轻,這世上最難降的妖魔是什么埠帕? 我笑而不...
    開封第一講書人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮玖绿,結(jié)果婚禮上敛瓷,老公的妹妹穿的比我還像新娘。我一直安慰自己斑匪,他們只是感情好呐籽,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般狡蝶。 火紅的嫁衣襯著肌膚如雪庶橱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評(píng)論 1 289
  • 那天贪惹,我揣著相機(jī)與錄音苏章,去河邊找鬼。 笑死奏瞬,一個(gè)胖子當(dāng)著我的面吹牛枫绅,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播硼端,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼并淋,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了珍昨?” 一聲冷哼從身側(cè)響起县耽,我...
    開封第一講書人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎曼尊,沒想到半個(gè)月后酬诀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡骆撇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年瞒御,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片神郊。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡肴裙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出涌乳,到底是詐尸還是另有隱情蜻懦,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布夕晓,位于F島的核電站宛乃,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蒸辆。R本人自食惡果不足惜征炼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望躬贡。 院中可真熱鬧谆奥,春花似錦、人聲如沸拂玻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至魄懂,卻和暖如春沿侈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背市栗。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工肋坚, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人肃廓。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像诲泌,于是被迫代替她去往敵國(guó)和親盲赊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容