Python面向?qū)ο笾鄳B(tài)原理與用法案例分析
本文實(shí)例講述了Python面向?qū)ο笾鄳B(tài)原理與用法。分享給大家供大家參考,具體如下:
目標(biāo)
多態(tài)
面向?qū)ο笕筇匦?/h2>
封裝 根據(jù) 職責(zé) 將 屬性 和 方法 封裝 到一個(gè)抽象的 類 中
定義類的準(zhǔn)則
繼承 實(shí)現(xiàn)代碼的重用,相同的代碼不需要重復(fù)的編寫
設(shè)計(jì)類的技巧
子類針對(duì)自己特有的需求,編寫特定的代碼
多態(tài) 不同的 子類對(duì)象 調(diào)用相同的 父類方法,產(chǎn)生不同的執(zhí)行結(jié)果
多態(tài) 可以 增加代碼的靈活度
以 繼承 和 重寫父類方法 為前提
是調(diào)用方法的技巧,不會(huì)影響到類的內(nèi)部設(shè)計(jì)

多態(tài)案例演練
需求
1.在 Dog 類中封裝方法 game
普通狗只是簡(jiǎn)單的玩耍
2.定義 XiaoTianDog 繼承自 Dog,并且重寫 game 方法
哮天犬需要在天上玩耍
3.定義 Person 類,并且封裝一個(gè) 和狗玩 的方法
在方法內(nèi)部,直接讓 狗對(duì)象 調(diào)用 game 方法

案例小結(jié)
Person 類中只需要讓 狗對(duì)象 調(diào)用 game 方法,而不關(guān)心具體是 什么狗
game 方法是在 Dog 父類中定義的
在程序執(zhí)行時(shí),傳入不同的 狗對(duì)象 實(shí)參,就會(huì)產(chǎn)生不同的執(zhí)行效果
多態(tài) 更容易編寫出出通用的代碼,做出通用的編程,以適應(yīng)需求的不斷變化!
class Dog(object):
def __init__(self, name):
self.name = name
def game(self):
print("%s 蹦蹦跳跳的玩耍..." % self.name)
class XiaoTianDog(Dog):
def game(self):
print("%s 飛到天上去玩耍..." % self.name)
class Person(object):
def __init__(self, name):
self.name = name
def game_with_dog(self, dog):
print("%s 和 %s 快樂的玩耍..." % (self.name, dog.name))
# 讓狗玩耍
dog.game()
# 1. 創(chuàng)建一個(gè)狗對(duì)象
# wangcai = Dog("旺財(cái)")
wangcai = XiaoTianDog("飛天旺財(cái)")
# 2. 創(chuàng)建一個(gè)小明對(duì)象
xiaoming = Person("小明")
# 3. 讓小明調(diào)用和狗玩的方法
xiaoming.game_with_dog(wangcai)
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
在cmd中運(yùn)行.py文件: python的操作步驟
今天小編就為大家分享一篇在cmd中運(yùn)行.py文件: python的操作步驟,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05
python實(shí)現(xiàn)會(huì)員管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)會(huì)員管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
python3獲取當(dāng)前目錄的實(shí)現(xiàn)方法
這篇文章主要介紹了python3獲取當(dāng)前目錄的實(shí)現(xiàn)方法,文中給大家提到了python3獲取當(dāng)前目錄和上級(jí)目錄的方法,需要的朋友可以參考下2019-07-07
利用Python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)的完整實(shí)例
這篇文章主要給大家介紹了關(guān)于如何利用Python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
tensorflow實(shí)現(xiàn)簡(jiǎn)單的卷積網(wǎng)絡(luò)
這篇文章主要為大家詳細(xì)介紹了tensorflow實(shí)現(xiàn)簡(jiǎn)單的卷積網(wǎng)絡(luò),使用的數(shù)據(jù)集是MNIST,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05
Python函數(shù)必須先定義,后調(diào)用說明(函數(shù)調(diào)用函數(shù)例外)
這篇文章主要介紹了Python函數(shù)必須先定義,后調(diào)用說明(函數(shù)調(diào)用函數(shù)例外),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06
火遍網(wǎng)絡(luò)的python中秋節(jié)賀卡現(xiàn)在學(xué)還趕得上
中秋將至,我用python編寫了個(gè)火遍網(wǎng)絡(luò)的中秋節(jié)賀卡,現(xiàn)在學(xué)起來還不晚,文中給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09

