日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python中使用多重继承

發布時間:2025/4/16 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python中使用多重继承 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在Python中(包括比較成熟的面向對象語言,比如Java, C#)中,一般只能進行單繼承,當然C++是多繼承的。多繼承會使得繼承結構比較復雜,不容易理清,這估計就是為什么后來新的面向對象語言中,沒有多繼承的原因。雖然這些語言不能進行多繼承,但可以通過接口來替代,比如讓類實現多個接口,效果一樣。

說了這么多,再回到Python來,我之前以為Python中也只能實現單一繼承,后來才知道可以多重繼承。 下面是一個多重繼承的例子。
分別有三個類,Point、Size、Rectangle類,Rectangle繼承Point和Size,程序很簡單,比較好理解。

class Point:x = 1.0y = 2.0z = 3.0def __init__(self, x, y):self.x = xself.y = yprint("Point Constructor")def __str__(self):return "{X:" + str(self.x) + ",Y:" + str(self.y) + "}"class Size:width = 0.0height = 0.0def __init__(self, width, height):self.width = widthself.height = heightprint("Size Constructor")def __str__(self):return "{Height:" + str(self.height) + ",Width:" + str(self.width) + "}"class Rectangle(Point, Size):def __init__(self, x, y, height, width):Point.__init__(self, x, y)Size.__init__(self, height, width)print("Rectangle Constructor")def __str__(self):return Point.__str__(self) + "," + Size.__str__(self)x1 = Point(3, 4) t1 = Size(10, 10) p1 = Rectangle(3, 4, 10, 10) print(x1) print(t1) print(p1) print(x1.z)

輸出結果

Point Constructor Size Constructor Point Constructor Size Constructor Rectangle Constructor {X:3,Y:4} {Height:10,Width:10} {X:3,Y:4},{Height:10,Width:10} 3.0

一般如果要在子類中調用父類被覆蓋的方法,使用super().method(),這種方法適合單繼承。 上面的例子是多繼承,有兩個子類的__init__()方法,因此需要使用父類的名稱,就像上面程序中使用的那樣。

Point.__init__(self, x, y) Size.__init__(self, height, width)

總結

以上是生活随笔為你收集整理的Python中使用多重继承的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。