類的繼承可以當(dāng)做對(duì)類的屬性和方式的器重,可以大大降低編碼量,接下來(lái)本文關(guān)鍵為大家介紹了有關(guān)Python中類的繼承的資料,原文中根據(jù)案例編碼推薦的十分詳盡,必須的小伙伴可以借鑒一下
1.單繼承
傳承的主要功能是促進(jìn)編碼的器重。傳承導(dǎo)致子品有著父類的方法和特性。
立即來(lái)說(shuō)個(gè)案例吧。
classanimal: defeat(self): print("吃") defdrink(self): print("喝") classdog(animal): defdark(self): print("汪汪叫") goudan=dog() goudan.eat() goudan.drink()
從上述的編碼能夠得知,在撰寫dog類情況下,我們也沒(méi)有重新寫過(guò)eat和drink2個(gè)方式。我們只需在dog后邊的括弧中再加上構(gòu)造函數(shù)的名稱就可以。當(dāng)子品繼承構(gòu)造函數(shù),子品就能直接應(yīng)用構(gòu)造函數(shù)中的方式了。在本例中,goudan可以直接用animal類里的eat和drink2個(gè)方式。
并且個(gè)神奇的事是,傳承是有著傳遞性的。子品有著父類的方法和特性,并且也具備構(gòu)造函數(shù)的構(gòu)造函數(shù)具有的特性。
2.傳承里的方法重寫
有時(shí),構(gòu)造函數(shù)中的辦法根本無(wú)法開(kāi)展達(dá)到子品的需要。此刻我們就要方法重寫了。子品方法重寫主要有兩種狀況:
遮蓋父類的方法
對(duì)父類的方法開(kāi)展拓展
一類最簡(jiǎn)單的方法是可以直接重新寫過(guò)對(duì)應(yīng)的方式。下面的表現(xiàn)是重新寫過(guò)了drink用這種方法。當(dāng)使用goudan調(diào)用drink用這種方法方式時(shí),結(jié)論并不是喝反而是拿嘴巴飲水。
classanimal: defeat(self): print("吃") defdrink(self): print("喝") classdog(animal): defdrink(self): print("拿嘴巴飲水") defdark(self): print("汪汪叫") goudan=dog() goudan.eat() goudan.drink()
當(dāng)我們要求并不只是遮蓋構(gòu)造函數(shù)中的辦法,而是構(gòu)造函數(shù)方式的前提下對(duì)方式進(jìn)行拓展。實(shí)際做法就是:
當(dāng)需要部位應(yīng)用super().構(gòu)造函數(shù)方式來(lái)啟用構(gòu)造函數(shù)方式的落實(shí)
編碼的許多部位針對(duì)子品的需要,撰寫子品所持有的代碼編寫
再來(lái)看個(gè)案例,這時(shí)goudan在啟用drink方式時(shí),會(huì)輸入輸出喝和拿嘴巴飲水2個(gè)輸入輸出。
classanimal: defeat(self): print("吃") defdrink(self): print("喝") classdog(animal): defdrink(self): #1.根據(jù)子品的需要撰寫特定的編碼 print("拿嘴巴飲水")
#2.應(yīng)用super傳承構(gòu)造函數(shù)里的fangfa
super().drink defdark(self): print("汪汪叫") goudan=dog() goudan.eat() goudan.drink()
3.多繼承
針對(duì)Python來(lái)講,個(gè)子品可以有好幾個(gè)構(gòu)造函數(shù)。多繼承的基礎(chǔ)語(yǔ)法是很簡(jiǎn)單的。廢話不多說(shuō),立即看這個(gè)案例
classA(): deftest(self): print("test") classB(): defdemo(self): print("demo") classC(A,B): pass c=C() c.test() c.demo()
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)?lái)幫助。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/130277.html
摘要:原鏈接中的元類是什么類也是對(duì)象在理解元類之前,需要掌握中類概念。事實(shí)上,是中用于創(chuàng)建所有類的元類。類本身是元類的對(duì)象在中,除了,一切皆對(duì)象,一切都是類或者元類的對(duì)象。事實(shí)上是自己的元類, 學(xué)習(xí)契機(jī) 項(xiàng)目中使用Elasticsearch(ES)存儲(chǔ)海量業(yè)務(wù)數(shù)據(jù),基于ES向外提供的API進(jìn)一層封裝,按需處理原始數(shù)據(jù)提供更精確、更多樣化的結(jié)果。在研究這一層的代碼時(shí)接觸到@six.add_me...
摘要:每次調(diào)用構(gòu)造都執(zhí)行,并且在構(gòu)造方法前執(zhí)行靜態(tài)代碼塊在類中方法外出現(xiàn),并加上修飾用于給類進(jìn)行初始化,隨著類加載而加載,一般用來(lái)給類進(jìn)行初始化,在加載的時(shí)候就執(zhí)行,并且只執(zhí)行一次。的構(gòu)造方法這是一條隱藏語(yǔ)句,用來(lái)訪問(wèn)父類中的空參構(gòu)造。 1.代碼塊的概述和分類(了解)(實(shí)際不用) A:代碼塊概述 在Java中,使用{}括起來(lái)的代碼被稱為代碼塊。 B:代碼塊分類 根據(jù)其位置和聲明的不同...
摘要:如果還是沒(méi)有找到,就會(huì)使用父類中的元類來(lái)創(chuàng)建類。元類通常用于處理比較復(fù)雜的情況。這是因?yàn)槭褂昧嗽?,它?huì)將中定義的字段轉(zhuǎn)換成數(shù)據(jù)庫(kù)中的字段。中所有數(shù)據(jù)類型都是對(duì)象,它們要么是類的實(shí)例要么是元類的實(shí)例。 原文地址:what is metaclass in Python?我的簡(jiǎn)書地址::nummy 類即對(duì)象 在理解元類之前,需要先掌握Python中的類,Python中類的概念與SmallT...
摘要:但我并不是一個(gè)翻譯者并不會(huì)嚴(yán)格遵守每行每句的翻譯有時(shí)候我會(huì)將表述換個(gè)順序省略一些我認(rèn)為無(wú)關(guān)緊要的話,以便讀者更好理解。類也是對(duì)象在理解之前,我們先要掌握中的類是什么。這個(gè)對(duì)象類自身?yè)碛挟a(chǎn)生對(duì)象實(shí)例的能力。不過(guò)這樣做是為了保持向后兼容性。 前言 這篇博客是我在stackoverflow上看了一個(gè)提問(wèn)回復(fù)后寫的,例子基本用的都是e-satis本人的例子,語(yǔ)言組織也基本按照翻譯來(lái)。 但我并不...
摘要:解決的辦法在處理計(jì)算密集型任務(wù)時(shí),使用多進(jìn)程協(xié)程,發(fā)揮計(jì)算機(jī)多核的威力,而處理密集型,則可以使用多線程。至此,有關(guān)知識(shí)點(diǎn)的面試題就已告一段落,下次更新數(shù)據(jù)庫(kù),方面面試題。 showImg(https://segmentfault.com/img/bVbuYzy?w=3484&h=2480); 閱讀本文大約需要 5 分鐘。 15.說(shuō)一說(shuō) GIL 前面有提到由于 Python 基于 C 語(yǔ)...
閱讀 892·2023-01-14 11:38
閱讀 837·2023-01-14 11:04
閱讀 688·2023-01-14 10:48
閱讀 1892·2023-01-14 10:34
閱讀 895·2023-01-14 10:24
閱讀 753·2023-01-14 10:18
閱讀 482·2023-01-14 10:09
閱讀 521·2023-01-14 10:02