日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何進(jìn)行創(chuàng)建Python多重繼承

Python 多重繼承可能是非常有用的方法。然而,當(dāng)項(xiàng)目達(dá)到某種程度的復(fù)雜性之后,過程代碼通常會暴露出其根本缺陷。下面讓我們直接進(jìn)入上一個(gè)示例的面向?qū)ο蟀姹?,并看看這樣有何變化。

石樓ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

 
 
 
  1. #!/usr/bin/env python
  2. from subprocess import Popen, PIPE
  3. import re
  4. class DiskMonitor():
  5.     """Disk Monitoring Class"""
  6.     def __init__(self,
  7.                 pattern="2[0-9]%",
  8.                 message="CAPACITY WARNING",
  9.                 cmd = "df -h"):
  10.         self.pattern = pattern
  11.         self.message = message
  12.         self.cmd = cmd
  13.     def disk_space(self):
  14.         """Disk space capacity flag method"""
  15.         ps = Popen(self.cmd, shell=True,stdout=PIPE,stderr=PIPE)
  16.         output_lines = ps.stdout.readlines()
  17.         for line in output_lines:
  18.             lineline = line.strip()
  19.             if re.search(self.pattern,line):
  20.                 print "%s %s" % (self.message,line)
  21. class MyDiskMonitor(DiskMonitor):
  22.     """Customized Disk Monitoring Class"""
  23.     def disk_space(self):
  24.         ps = Popen(self.cmd, shell=True,stdout=PIPE,stderr=PIPE)
  25.         print "RAW DISK REPORT:"
  26.         print ps.stdout.read()
  27. if __name__ == "__main__":
  28.     d = MyDiskMonitor()
  29.     d.disk_space()          

查看該代碼的面向?qū)ο蟀姹?,可以看到代碼變得更加抽象。有時(shí),太多的抽象會導(dǎo)致設(shè)計(jì)問題,但是在此例中,它允許您將問題分離為更多可重用的部分。DiskMonitor 類具有 __init__ method,您可以在其中定義新的參數(shù),并且 disk_space 函數(shù)現(xiàn)在是該類中的一個(gè)方法。

使用這種新的樣式,您無需更改原始代碼即可容易地重用和自定義各個(gè)部分,而使用過程代碼時(shí)則通常必須更改原始代碼。Python 多重繼承面向?qū)ο蟮脑O(shè)計(jì)的一個(gè)更加功能強(qiáng)大、通常也被過度使用的方面是繼承。繼承允許您在新的類中重用和自定義現(xiàn)有的代碼。讓我們在下一個(gè)示例中看看繼承可能像什么樣子。

此輸出與前面帶標(biāo)記的版本區(qū)別非常大,因?yàn)樗皇鞘褂庙敳孔⑷氲?print 語句來打印的未經(jīng)篩選的 df –h 命令結(jié)果。通過重寫 MyDiskMonitor 類中的方法,您能夠完全改變 disk_space 方法的意圖。 #t#

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

也許是將其命名為 disk_alert(self),這樣就可以進(jìn)一步自定義新類。這是面向?qū)ο蟮脑O(shè)計(jì)的美妙之處;它允許有經(jīng)驗(yàn)的開發(fā)人員不斷重用已編寫的代碼,從而節(jié)省大量的時(shí)間。 遺憾的是,面向?qū)ο蟮木幊桃灿衅洳焕囊幻妗K羞@些抽象都是以復(fù)雜性為代價(jià)的,如果抽象過度,可能會徹底地弄巧成拙。

由于 Python 多重繼承,抽象可以達(dá)到相當(dāng)有害的復(fù)雜程度。您是否能夠想象只是為了編寫一個(gè)方法也要查看多個(gè)文件的情況?無論相信與否,這種情況的確會發(fā)生,并且代表了面向?qū)ο缶幊痰牟恍椰F(xiàn)實(shí)。


分享文章:如何進(jìn)行創(chuàng)建Python多重繼承
文章轉(zhuǎn)載:http://www.5511xx.com/article/dheoijc.html