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