Python 面向對象之封裝、繼承、多態(tài)操作實例分析
本文實例講述了Python 面向對象之封裝、繼承、多態(tài)操作。分享給大家供大家參考,具體如下:
封裝、繼承、多態(tài) 是面向對象的3大特性
為啥要封裝


好處
在使用面向過程編程時,當需要對數據處理時,需要考慮用哪個模板中哪個函數來進行操作,但是當用面向對象編程時,因為已經將數據存儲到了這個獨立的空間中,這個獨立的空間(即對象)中通過一個特殊的變量(class)能夠獲取到類(模板),而且這個類中的方法是有一定數量的,與此類無關的將不會出現在本類中,因此需要對數據處理時,可以很快速的定位到需要的方法是誰 這樣更方便
全局變量是只能有1份的,多很多個函數需要多個備份時,往往需要利用其它的變量來進行儲存;而通過封裝 會將用來存儲數據的這個變量 變?yōu)榱藢ο笾械囊粋€“全局”變量,只要對象不一樣那么這個變量就可以再有1份,所以這樣更方便
代碼劃分更清晰
面向過程
全局變量1 全局變量2 全局變量3 ... def 函數1(): pass def 函數2(): pass def 函數3(): pass def 函數4(): pass def 函數5(): pass
面向對象
class 類(object):
屬性1
屬性2
def 方法1(self):
pass
def 方法2(self):
pass
class 類2(object):
屬性3
def 方法3(self):
pass
def 方法4(self):
pass
def 方法5(self):
pass
為啥要繼承

說明
能夠提升代碼的重用率,即開發(fā)一個類,可以在多個子功能中直接使用
繼承能夠有效的進行代碼的管理,當某個類有問題只要修改這個類就行,而其繼承這個類的子類往往不需要就修改
怎樣理解多態(tài)
class MiniOS(object):
"""MiniOS 操作系統類 """
def __init__(self, name):
self.name = name
self.apps = [] # 安裝的應用程序名稱列表
def __str__(self):
return "%s 安裝的軟件列表為 %s" % (self.name, str(self.apps))
def install_app(self, app):
# 判斷是否已經安裝了軟件
if app.name in self.apps:
print("已經安裝了 %s,無需再次安裝" % app.name)
else:
app.install()
self.apps.append(app.name)
class App(object):
def __init__(self, name, version, desc):
self.name = name
self.version = version
self.desc = desc
def __str__(self):
return "%s 的當前版本是 %s - %s" % (self.name, self.version, self.desc)
def install(self):
print("將 %s [%s] 的執(zhí)行程序復制到程序目錄..." % (self.name, self.version))
class PyCharm(App):
pass
class Chrome(App):
def install(self):
print("正在解壓縮安裝程序...")
super().install()
linux = MiniOS("Linux")
print(linux)
pycharm = PyCharm("PyCharm", "1.0", "python 開發(fā)的 IDE 環(huán)境")
chrome = Chrome("Chrome", "2.0", "谷歌瀏覽器")
linux.install_app(pycharm)
linux.install_app(chrome)
linux.install_app(chrome)
print(linux)
運行結果
Linux 安裝的軟件列表為 []
將 PyCharm [1.0] 的執(zhí)行程序復制到程序目錄...
正在解壓縮安裝程序...
將 Chrome [2.0] 的執(zhí)行程序復制到程序目錄...
已經安裝了 Chrome,無需再次安裝
Linux 安裝的軟件列表為 ['PyCharm', 'Chrome']
更多關于Python相關內容感興趣的讀者可查看本站專題:《Python面向對象程序設計入門與進階教程》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結》及《Python入門與進階經典教程》
希望本文所述對大家Python程序設計有所幫助。
相關文章
Python利用subplots_adjust方法解決圖表與畫布的間距問題
這篇文章主要介紹了如何在使用python?的?matplotlib庫繪圖時,?使用subplots_adjust()方法來調整圖表與畫布之間的間距,以及圖表與圖表之間的間距,感興趣的可以了解一下2022-04-04
python?reshape和transpose的區(qū)別小結
reshape()?和?transpose()?是用于改變數組或張量形狀的兩種不同方法,本文主要介紹了python?reshape和transpose的區(qū)別小結,具有一定參考價值,感興趣的可以了解一下2024-02-02
循環(huán)神經網絡TextRNN實現情感短文本分類任務
這篇文章主要為大家介紹了循環(huán)神經網絡TextRNN實現情感短文本分類任務詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-04-04

