摘要:一點(diǎn)點(diǎn)小刀刀晚上收到了某招聘軟件的的消息,心里慌的不行。所以在上面的代碼中,我們可以考慮把改為來更好的看出繼承關(guān)系。定義方法,在被用于循環(huán)時(shí)返回迭代對(duì)象,循環(huán)會(huì)不斷的調(diào)用方法拿到下一個(gè)值,直到終止。
一點(diǎn)點(diǎn)小刀刀
晚上收到了某招聘軟件的HR的消息,心里慌的不行。
因?yàn)楹芟霌Q崗位了,可是當(dāng)機(jī)會(huì)來的時(shí)候,我卻只能表示能力不行。
所以要速速的加油了?。。?/p>
開始學(xué)習(xí)的分割
日常一點(diǎn)點(diǎn)小雞血!
請(qǐng)不要假裝努力,結(jié)果不會(huì)陪你演戲。
Python內(nèi)置的@property將方法變成屬性調(diào)用。
class Student(object): @property def score(self): return self._score @score.setter def score(self, value): if not isinstance(value, int): raise ValueError("score must be an integer!") if value < 0 or value > 100: raise ValueError("score must between 0 ~ 100!") self._score = value
加上@property后就變成了getter的方法,@property本身又創(chuàng)建了另一個(gè)裝飾器score.setter,負(fù)責(zé)把一個(gè)setter方法變成屬性賦值。
只定義getter方法,不定義setter方法就是一個(gè)只讀屬性
做個(gè)作業(yè)~
多重繼承通過多重繼承,一個(gè)子類可以繼承多個(gè)父類的屬性與方法。
class Father(object): pass class Mother(object): pass class children(Father,Mother): pass #這樣孩子就同時(shí)繼承了爸爸和媽媽的屬性MixIn
設(shè)計(jì)繼承關(guān)系的時(shí)候,多重繼承的設(shè)計(jì)被成為MixIn。
所以在上面的代碼中,我們可以考慮把Father改為FatherMixIn來更好的看出繼承關(guān)系。
class FatherMixIn(object): pass class MotherMixIn(object): pass class children(FatherMixIn,MotherMixIn): pass
MixIn的目的就是給一個(gè)類增加多種功能,所以在設(shè)計(jì)類的時(shí)候,盡量考慮多重繼承,少用復(fù)雜的多層次的類的繼承。
Python自帶的很多庫也使用了MixIn。舉個(gè)例子,Python自帶了TCPServer和UDPServer這兩類網(wǎng)絡(luò)服務(wù),而要同時(shí)服務(wù)多個(gè)用戶就必須使用多進(jìn)程或多線程模型,這兩種模型由ForkingMixIn和ThreadingMixIn提供。通過組合,我們就可以創(chuàng)造出合適的服務(wù)來。
很多語言僅有單一繼承的情況,如Java。
定義類
__str__
定義__str__方法,可以打印的好看
直接顯示變量調(diào)用的不是__str__(),而是__repr__(),兩者的區(qū)別是__str__()返回用戶看到的字符串,而__repr__()返回程序開發(fā)者看到的字符串,也就是說,__repr__()是為調(diào)試服務(wù)的。
__iter__
定義__iter__方法,在被用于for...in循環(huán)時(shí)返回迭代對(duì)象,for循環(huán)會(huì)不斷的調(diào)用__next__()方法拿到下一個(gè)值,直到5終止。
__getitem__
定義__getitem__方法,讓實(shí)例變成list,但并不是真實(shí)的list,所以通過定義,讓它變得像list一樣可操作性。
要正確實(shí)現(xiàn)一個(gè)__getitem__()還是有很多工作要做的,因?yàn)閭魅氲膮?shù)可能不是int。
__getattr__
可以嘗試鏈?zhǔn)秸{(diào)用,這個(gè)等我明天腦子清晰的時(shí)候詳細(xì)研究下。
代碼先貼
class Chain(object): def __init__(self, path=""): self._path = path def __getattr__(self, path): return Chain("%s/%s" % (self._path, path)) def __str__(self): return self._path __repr__ = __str__ #無論API怎么變,SDK都可以根據(jù)URL實(shí)現(xiàn)完全動(dòng)態(tài)的調(diào)用
__call__
還得看第二遍...明天一定要弄懂了
晚安~
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/42926.html
摘要:在拖完地板之后,想想還是補(bǔ)上今天的題解吧感謝小佳揚(yáng)推薦的題目,默默的復(fù)習(xí)了一把遞歸第一題難度中等實(shí)現(xiàn),即計(jì)算的次冪函數(shù)。因?yàn)槭谴蝺?,如果直接循環(huán),復(fù)雜度就是了。次冪可以拆解為的方式。每次拆解,最后最小的單位應(yīng)該為。 寫在前面 年前嘛,就是各種渙散的狀態(tài)。在拖完地板之后,想想還是補(bǔ)上今天的題解吧~感謝小佳揚(yáng)推薦的題目,默默的復(fù)習(xí)了一把遞歸~ 第一題 50. Pow(x, n)難度:中等 ...
摘要:好久不見最近都在忙年底的年會(huì),還沉迷于學(xué)習(xí)統(tǒng)計(jì)學(xué),教程還停留在基礎(chǔ)語法。做題做題無論如何,數(shù)據(jù)結(jié)構(gòu)還是很重要的,所以準(zhǔn)備每天刷的題目啦。第一題移除元素給定一個(gè)數(shù)組和一個(gè)值,你需要原地移除所有數(shù)值等于的元素,返回移除后數(shù)組的新長度。 好久不見 最近都在忙年底的年會(huì),還沉迷于學(xué)習(xí)統(tǒng)計(jì)學(xué),python教程還停留在基礎(chǔ)語法。但是仔細(xì)規(guī)劃了下,還是要好好的瞄準(zhǔn)目標(biāo)前行。所以準(zhǔn)備呢,實(shí)戰(zhàn)走起來。 ...
摘要:給定的字符串只含有小寫英文字母,并且長度不超過。其他這題了,要重做看了其他的人的題解,使用的是無限逼近中位值的辦法,理論基礎(chǔ)應(yīng)該是泰勒公式。萬萬沒想到居然用到了泰勒公式手工執(zhí)行了下算法,反而理解的更快,但是泰勒公式還得再復(fù)習(xí)下。 寫在前面的話 今天持續(xù)做題ing,python有意思~今天的題有點(diǎn)虐心...興許是我太笨了...會(huì)努力學(xué)習(xí)的!動(dòng)態(tài)規(guī)劃我來啦~ 開始做題 第一題 459. 重...
摘要:新年快樂年終于來了,突然覺得有點(diǎn)如釋重負(fù)。大概年實(shí)在是太沉重了吧。年應(yīng)該是要充滿拼勁的一年希望可以成功轉(zhuǎn)型自己喜歡的職業(yè)。開始認(rèn)真學(xué)習(xí)了雞血一波。建議類的屬性名和實(shí)例屬性名不要重復(fù),否則類的屬性名會(huì)覆蓋。 新年快樂 2019年終于來了,突然覺得有點(diǎn)如釋重負(fù)。大概2018年實(shí)在是太沉重了吧。2019年應(yīng)該是要充滿拼勁的一年!!!!希望可以成功轉(zhuǎn)型自己喜歡的職業(yè)。 開始認(rèn)真學(xué)習(xí)了 雞血一波...
摘要:屬性,可以函數(shù)的名字在代碼運(yùn)行期間動(dòng)態(tài)增加功能的方式,稱之為裝飾器。本質(zhì)上,就是一個(gè)返回函數(shù)的高階函數(shù)。比如,定義一個(gè)能打印日志的。接受函數(shù)作為參數(shù),要放置在函數(shù)定義處。一個(gè)完整的的代碼如下記錄的是傳入的的值,位置在嵌套內(nèi)或者帶參數(shù)的如下。 又是一段叨叨 如果總是擔(dān)心能不能做到的話,那就干脆不要做了。想做的事情還是一往無前的好,什么都不想,就努力沖沖沖吧! 裝飾器 因?yàn)楹瘮?shù)是一個(gè)對(duì)象。...
閱讀 918·2021-11-22 13:53
閱讀 2543·2021-10-15 09:40
閱讀 1012·2021-10-14 09:42
閱讀 3588·2021-09-22 15:59
閱讀 902·2021-09-02 09:47
閱讀 2407·2019-08-30 15:54
閱讀 1448·2019-08-29 17:14
閱讀 412·2019-08-29 15:15