欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python 面向對象之封裝、繼承、多態(tài)操作實例分析

 更新時間:2019年11月21日 11:12:22   作者:小飛俠v科比  
這篇文章主要介紹了Python 面向對象之封裝、繼承、多態(tài)操作,結合實例形式分析了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 操作系統(tǒng)類 """
  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的自媒體小助手---登錄頁面的實現代碼

    基于Python的自媒體小助手---登錄頁面的實現代碼

    這篇文章主要介紹了基于Python的自媒體小助手---登錄頁面的實現代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Python基于遞歸實現電話號碼映射功能示例

    Python基于遞歸實現電話號碼映射功能示例

    這篇文章主要介紹了Python基于遞歸實現電話號碼映射功能,結合實例形式分析了Python針對字典的遞歸、遍歷相關操作技巧,需要的朋友可以參考下
    2018-04-04
  • 在python下實現word2vec詞向量訓練與加載實例

    在python下實現word2vec詞向量訓練與加載實例

    這篇文章主要介紹了在python下實現word2vec詞向量訓練與加載實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python中的進度條工具tqdm及用法示例

    python中的進度條工具tqdm及用法示例

    tqdm 是 Python 中一個非常流行的進度條工具,常用于長時間運行的任務,如數據處理、訓練機器學習模型等,下面是 tqdm 的詳細介紹及一些常見用法示例,感興趣的朋友一起看看吧
    2024-06-06
  • 通過Python實現猜燈謎游戲的示例代碼

    通過Python實現猜燈謎游戲的示例代碼

    新的一年迎來了元宵節(jié),元宵佳節(jié)在陪伴家人的同時,自然也少不了賞花燈,猜燈謎的項目。本文會通過Python實現這一游戲,需要的可以參考一下
    2022-02-02
  • 使用pandas實現csv/excel sheet互相轉換的方法

    使用pandas實現csv/excel sheet互相轉換的方法

    今天小編就為大家分享一篇使用pandas實現csv/excel sheet互相轉換的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 基于Keras的擴展性使用

    基于Keras的擴展性使用

    這篇文章主要介紹了Keras的擴展性使用操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python內置函數dir詳解

    Python內置函數dir詳解

    這篇文章主要介紹了Python內置函數dir詳解,本文講解了命令介紹、使用實例、使用dir查找module下的所有類、如何找到當前模塊下的類等內容,需要的朋友可以參考下
    2015-04-04
  • Python多分支語句的三種結構詳解

    Python多分支語句的三種結構詳解

    這篇文章主要介紹了Python多分支語句的三種結構,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 詳解在SpringBoot如何優(yōu)雅的使用多線程

    詳解在SpringBoot如何優(yōu)雅的使用多線程

    這篇文章主要帶大家快速了解一下@Async注解的用法,包括異步方法無返回值、有返回值,最后總結了@Async注解失效的幾個坑,感興趣的小伙伴可以了解一下
    2023-02-02

最新評論