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