亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

宁陕县| 江油市| 柞水县| 江华| 新丰县| 桂东县| 汤原县| 嘉定区| 潞西市| 石台县| 内江市| 北辰区| 即墨市| 广元市| 石林| 太湖县| 威信县| 安西县| 阿拉尔市| 佳木斯市| 建宁县| 诏安县| 萍乡市| 高唐县| 阜宁县| 逊克县| 宣武区| 交口县| 保德县| 绿春县| 通城县| 阿巴嘎旗| 阜康市| 东莞市| 宝山区| 甘泉县| 罗山县| 陈巴尔虎旗| 仁化县| 平安县| 安新县|