亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

什么是Python中類的繼承

發布時間:2020-08-25 13:58:29 來源:億速云 閱讀:232 作者:Leah 欄目:編程語言

這篇文章運用簡單易懂的例子給大家介紹什么是Python中類的繼承,代碼非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

一、繼承的概念

在現實生活中,繼承一般指的是子女繼承父輩的財產,在程序中,繼承描述的是事物之間的所屬關系,例如貓和狗都屬于動物,程序中便可以描述為貓和狗繼承自動物;同理,波斯貓和巴厘貓都繼承自貓,而沙皮狗和斑點狗都繼承足夠,如下如所示:

二、繼承的示例

class Cat(object):
    def __init__(self,name,color="白色"):
        self.name = name
        self.color = color
    def run(self):
        print("%s:在跑"%self.name)
class Bosi(Cat):
    def setNewName(self,newName):
        self.name = newName
    def eat(self):
        print("%s:在吃"%self.name)
bs = Bosi("波斯貓")
print("bs的名字是:%s,顏色是:%s"%(bs.name,bs.color))
bs.eat()
bs.setNewName("湯姆貓")
bs.run()

運行結果為:

bs的名字是:波斯貓,顏色是:白色
波斯貓:在吃
湯姆貓:在跑

說明:

1.雖然子類沒有定義__init__()方法,但是父類有。所以在子類集成父類的時候這個方法就被繼承了,所以只要創建Bosi的對象,就默認執行了那個繼承過來的__init__()方法。

2.子類在繼承的時候,在定義類時,小括號()中為父類的名字。

3.父類的所有非私有的屬性、方法、會被繼承給子類。

注意:

1.私有的屬性,不能通過對象直接訪問,但是可以通過方法訪問。

2.私有的方法,不能通過對象直接訪問。

3.私有的屬性、方法,不會被子類繼承,也不能被訪問。

4.一般情況下,私有的屬性、方法都是不對外公布的,往往用來做內部的事情,起到安全的作用。

class Animal(object):
    def __init__(self, name = "動物",color = "白色"):
        self.__name = name
        self.color = color
    
    def __test1(self):
        print(self.__name)
        print(self.color)
    def test2(self):
        print(self.__name)
        print(self.color)
class Dog(Animal):
    def dogTest1(self):
        #不能訪問父類的私有屬性:AttributeError: 'Animal' object has no attribute '__name'
        #print(self.__name)
        print(self.color)
    def dogTest2(self):
        #self.__test1()
        self.test2()
A = Animal()
#print(A.__name)
print(A.color)
#不能訪問父類的私有方法:AttributeError: 'Animal' object has no attribute '__test1'
#A.__test1()
A.test2()
print("-----------------分割線-----------------")
D = Dog(name="阿黃",color = "黃色")
D.dogTest1()
D.dogTest2()

運行結果為:

白色
動物
白色
-----------------分割線-----------------
黃色
阿黃
黃色

三、多繼承

什么是Python中類的繼承

從圖中能夠看出,所謂多繼承,即子類有多個父類,并且具有它們的特征。

Python中多繼承的格式如下:

class A:
    def printA(self):
        print("---A---")
class B:
    def printB(self):
        print("---B---")
#定義一個子類繼承A,B
class C(A,B):
    def printC(self):
        print("---C---")
obj_C = C()
obj_C.printA()
obj_C.printB()

運行結果為:

---A---
---B---

說明

1.python中是可以多繼承的。

2.父類中的方法、屬性,子類會繼承。

3.如果多個父類中有同一個方法,誰寫在前面就調用誰的方法。

class A:
    def printA(self):
        print("---A---")
class B:
    def printB(self):
        print("---B---")
#定義一個子類繼承A,B
class C(A,B):
    def printC(self):
        print("---C---")
obj_C = C()
obj_C.printA()
obj_C.printB()
#可以查看一個雷的對象搜索方法時的先后順序
print(C.__mro__)

運行結果為:

---A---
---B---
(<class '__main__.C'>, <class '__main__.A'>, <class '__main__.B'>, <class 'object'>)

關于什么是Python中類的繼承就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

建平县| 嘉黎县| 深水埗区| 亚东县| 湖口县| 双流县| 凉山| 天祝| 青神县| 金川县| 永善县| 新宾| 双流县| 巴中市| 方城县| 濉溪县| 翼城县| 江孜县| 自治县| 永登县| 新兴县| 偏关县| 文昌市| 全椒县| 邻水| 东城区| 新宁县| 邢台县| 汉寿县| 阳泉市| 新昌县| 屏南县| 英德市| 民乐县| 新源县| 无锡市| 神农架林区| 乐清市| 绍兴市| 睢宁县| 西乌|