Python面向?qū)ο蟪绦蛟O計多繼承和多態(tài)用法示例
本文實例講述了Python面向?qū)ο蟪绦蛟O計多繼承和多態(tài)用法。分享給大家供大家參考,具體如下:
多繼承
就是一個子類繼承多個父類:
多繼承的例子,如下:
# -*- coding:utf-8 -*- #! python3 class Base(object): def test(self): print("------base") class A(Base): def test1(self): print("-----test1") class B(Base): def test2(self): print("----test2") class C(A,B): pass c=C() c.test1() c.test2() c.test()
運行結果:
-----test1
----test2
------base
C也能繼承Base
注:多繼承中,每個父類都有相同的方法,子類繼承時,會有一個繼承順序
想要查看該順序的調(diào)用流程可以使用以下方法:
最后調(diào)用的是object方法,如果object方法也不存在,說明類中沒有這個方法
print(子類類名.__mro__)
# -*- coding:utf-8 -*- #! python3 class Base(object): def test(self): print("-----Base") class A(Base): def test(self): print("----A") class B(Base): def test(self): print("----B") class C(A,B): def test(self): print("-----C") c=C() c.test()
運行結果:
-----C
多態(tài)
什么是多態(tài):
定義時的類型和運行時的類型不一樣,也就是定義時并不確定要調(diào)用的是哪個方法,只有運行的時候才能確定調(diào)用的是哪個
# -*- coding:utf-8 -*- #! python3 class Dog(object): def print_self(self): print("父類") class Xiaotq(Dog): def print_self(self): print("子類") def introduce(temp): temp.print_self() dog1=Dog() dog2=Xiaotq() introduce(dog1) introduce(dog2)
運行結果:
父類
子類
temp就是對象的引用,它和對象指向同一塊空間
多態(tài)的作用:
在游戲中有多種類型的角色,要在玩家開始玩的時候才能選擇,所以開始并不知道玩家選的什么角色,這就是多態(tài)
更多關于Python相關內(nèi)容感興趣的讀者可查看本站專題:《Python面向?qū)ο蟪绦蛟O計入門與進階教程》、《Python數(shù)據(jù)結構與算法教程》、《Python函數(shù)使用技巧總結》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結》及《Python入門與進階經(jīng)典教程》
希望本文所述對大家Python程序設計有所幫助。
相關文章
Python2.7基于笛卡爾積算法實現(xiàn)N個數(shù)組的排列組合運算示例
這篇文章主要介紹了Python2.7基于笛卡爾積算法實現(xiàn)N個數(shù)組的排列組合運算,涉及Python笛卡爾積算法及排列組合操作相關實現(xiàn)技巧,需要的朋友可以參考下2017-11-11python讓圖片按照exif信息里的創(chuàng)建時間進行排序的方法
這篇文章主要介紹了python讓圖片按照exif信息里的創(chuàng)建時間進行排序的方法,涉及Python操作圖片exif獲取信息的技巧,需要的朋友可以參考下2015-03-03Python使用eel模塊創(chuàng)建GUI應用程序
在Python中,有許多庫和模塊可以用來創(chuàng)建圖形用戶界面(GUI)應用程序,其中一個流行的選擇是使用eel模塊,下面小編就來為大家詳細介紹一下如何使用eel模塊創(chuàng)建GUI應用程序吧2023-12-12