91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中怎么創建多重繼承

發布時間:2021-07-28 15:45:17 來源:億速云 閱讀:168 作者:Leah 欄目:編程語言

本篇文章為大家展示了Python中怎么創建多重繼承,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

Python 多重繼承可能是非常有用的方法。然而,當項目達到某種程度的復雜性之后,過程代碼通常會暴露出其根本缺陷。下面讓我們直接進入上一個示例的面向對象版本,并看看這樣有何變化。

#!/usr/bin/env python   from subprocess import Popen, PIPE  import re   class DiskMonitor():      """Disk Monitoring Class"""      def __init__(self,                  pattern="2[0-9]%",                  message="CAPACITY WARNING",                  cmd = "df -h"):          self.pattern = pattern          self.message = message          self.cmd = cmd       def disk_space(self):          """Disk space capacity flag method"""          ps = Popen(self.cmd, shell=True,stdout=PIPE,stderr=PIPE)          output_lines = ps.stdout.readlines()          for line in output_lines:              lineline = line.strip()              if re.search(self.pattern,line):                  print "%s %s" % (self.message,line)   class MyDiskMonitor(DiskMonitor):      """Customized Disk Monitoring Class"""       def disk_space(self):          ps = Popen(self.cmd, shell=True,stdout=PIPE,stderr=PIPE)          print "RAW DISK REPORT:"          print ps.stdout.read()   if __name__ == "__main__":      d = MyDiskMonitor()      d.disk_space()

查看該代碼的面向對象版本,可以看到代碼變得更加抽象。有時,太多的抽象會導致設計問題,但是在此例中,它允許您將問題分離為更多可重用的部分。DiskMonitor 類具有 __init__ method,您可以在其中定義新的參數,并且 disk_space 函數現在是該類中的一個方法。

使用這種新的樣式,您無需更改原始代碼即可容易地重用和自定義各個部分,而使用過程代碼時則通常必須更改原始代碼。Python 多重繼承面向對象的設計的一個更加功能強大、通常也被過度使用的方面是繼承。繼承允許您在新的類中重用和自定義現有的代碼。讓我們在下一個示例中看看繼承可能像什么樣子。

此輸出與前面帶標記的版本區別非常大,因為它只是使用頂部注入的 print 語句來打印的未經篩選的 df –h 命令結果。通過重寫 MyDiskMonitor 類中的方法,您能夠完全改變 disk_space 方法的意圖。

允許您重用其他類中的屬性的 Python 多重繼承是這個“MyDiskMonitor(DiskMonitor)”語句。您只需在定義新類的名稱時,將先前的類的名稱放在括號內。一旦完成此步驟,您立即可以訪問其他類屬性來做自己希望的事情。但是樂趣不僅于此。通過添加另一個通過電子郵件來發送標記消息的方法。

也許是將其命名為 disk_alert(self),這樣就可以進一步自定義新類。這是面向對象的設計的美妙之處;它允許有經驗的開發人員不斷重用已編寫的代碼,從而節省大量的時間。 遺憾的是,面向對象的編程也有其不利的一面。所有這些抽象都是以復雜性為代價的,如果抽象過度,可能會徹底地弄巧成拙。

由于 Python 多重繼承,抽象可以達到相當有害的復雜程度。您是否能夠想象只是為了編寫一個方法也要查看多個文件的情況?無論相信與否,這種情況的確會發生,并且代表了面向對象編程的不幸現實。

上述內容就是Python中怎么創建多重繼承,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

托里县| 天津市| 威信县| 喀什市| 金华市| 清新县| 科尔| 中阳县| 泰和县| 云阳县| 白河县| 福泉市| 新宾| 三穗县| 益阳市| 克东县| 澎湖县| 潮安县| 兴化市| 连南| 林口县| 永寿县| 武义县| 饶平县| 白水县| 阳城县| 扬中市| 巴青县| 密云县| 正镶白旗| 荆州市| 铜梁县| 轮台县| 连山| 新源县| 新巴尔虎左旗| 中宁县| 海淀区| 平乡县| 元谋县| 崇左市|