Python面向?qū)ο蟪绦蛟O(shè)計(jì)多繼承和多態(tài)用法示例
本文實(shí)例講述了Python面向?qū)ο蟪绦蛟O(shè)計(jì)多繼承和多態(tài)用法。分享給大家供大家參考,具體如下:
多繼承
就是一個(gè)子類繼承多個(gè)父類:

多繼承的例子,如下:
# -*- 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()
運(yùn)行結(jié)果:
-----test1
----test2
------base

C也能繼承Base
注:多繼承中,每個(gè)父類都有相同的方法,子類繼承時(shí),會(huì)有一個(gè)繼承順序
想要查看該順序的調(diào)用流程可以使用以下方法:
最后調(diào)用的是object方法,如果object方法也不存在,說(shuō)明類中沒(méi)有這個(gè)方法
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()
運(yùn)行結(jié)果:
-----C
多態(tài)
什么是多態(tài):
定義時(shí)的類型和運(yùn)行時(shí)的類型不一樣,也就是定義時(shí)并不確定要調(diào)用的是哪個(gè)方法,只有運(yùn)行的時(shí)候才能確定調(diào)用的是哪個(gè)
# -*- 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)
運(yùn)行結(jié)果:
父類
子類
temp就是對(duì)象的引用,它和對(duì)象指向同一塊空間
多態(tài)的作用:
在游戲中有多種類型的角色,要在玩家開(kāi)始玩的時(shí)候才能選擇,所以開(kāi)始并不知道玩家選的什么角色,這就是多態(tài)
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)與進(jìn)階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門(mén)與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
通過(guò)實(shí)例了解Python異常處理機(jī)制底層實(shí)現(xiàn)
這篇文章主要介紹了通過(guò)實(shí)例了解Python異常處理機(jī)制底層實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
Python2.7基于笛卡爾積算法實(shí)現(xiàn)N個(gè)數(shù)組的排列組合運(yùn)算示例
這篇文章主要介紹了Python2.7基于笛卡爾積算法實(shí)現(xiàn)N個(gè)數(shù)組的排列組合運(yùn)算,涉及Python笛卡爾積算法及排列組合操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-11-11
python讓圖片按照exif信息里的創(chuàng)建時(shí)間進(jìn)行排序的方法
這篇文章主要介紹了python讓圖片按照exif信息里的創(chuàng)建時(shí)間進(jìn)行排序的方法,涉及Python操作圖片exif獲取信息的技巧,需要的朋友可以參考下2015-03-03
Python使用eel模塊創(chuàng)建GUI應(yīng)用程序
在Python中,有許多庫(kù)和模塊可以用來(lái)創(chuàng)建圖形用戶界面(GUI)應(yīng)用程序,其中一個(gè)流行的選擇是使用eel模塊,下面小編就來(lái)為大家詳細(xì)介紹一下如何使用eel模塊創(chuàng)建GUI應(yīng)用程序吧2023-12-12

