91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

python多繼承

發布時間:2020-07-15 12:29:28 來源:網絡 閱讀:425 作者:射雕英雄k 欄目:編程語言

python是支持多繼承的,多繼承一般就會考慮到繼承的順序問題,菱形繼承的問題。


class A(object):
    def __init__(self, name):
        self.name = name
        print ("in A")

class B(A):
    def __init__(self, name):
        self.name = name
        print ("in B")

class C(A):
    def __init__(self, name):
        self.name = name
        print ("in C")

class D(B,C):
    pass
obj = D('myname')

結果輸出:
in B

python多繼承

上邊這段代碼里B和C繼承了A這是單繼承,而D同時繼承了B和C屬于多繼承。
此時D沒有init構造函數,會繼承父類的構造函數。
D繼承了兩個類,那么應該怎么繼承呢?
按順序繼承先繼承B的構造函數,如果B也沒有構造函數,那應該繼承C還是A呢?

兩種策略

  1. 廣度優先
  2. 深度優先

到底走那種策略
這里先引入一個python里的新式類與經典類的概念

1.在Python里凡是繼承了object的類,都是新式類。
2.Python3+里只有新式類(在Python 3.x之后的版本,因為所有的類都派生自內置類型object(即使沒有顯示的繼承object類型),即所有的類都是“新式類”。)
3.Python2+里繼承object的類是新式類,沒有寫父類的是經典類
4.經典類目前在Python里基本沒有應用

現在回答上個問題,該繼承C還是A

1. python2 中經典類是按照深度優先查找,新式類按照廣度優先查找。
2. python3 中所有的類都是新式類所以都是按照廣度優先來繼承。

上述代碼很明顯是新式類,所以當B沒有構造函數時繼承C的構造函數,C也沒有的時候繼承A
如果在python2中,且為經典類的話當B沒有構造函數時繼承A的構造函數,A沒有的時候繼承C

向AI問一下細節

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

AI

如东县| 新平| 玛多县| 黄石市| 南靖县| 靖宇县| 奎屯市| 吉首市| 齐河县| 玉树县| 望奎县| 忻城县| 白山市| 石首市| 福海县| 建昌县| 岳阳市| 平邑县| 台江县| 扬州市| 阿拉善左旗| 郸城县| 田东县| 田林县| 驻马店市| 武冈市| 来宾市| 彭山县| 达州市| 栾城县| 阿图什市| 沅江市| 颍上县| 九龙城区| 饶平县| 汝阳县| 会理县| 文安县| 噶尔县| 南城县| 略阳县|