日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

小李飞刀:Python我又来啦,例无虚发~

發布時間:2024/1/8 python 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 小李飞刀:Python我又来啦,例无虚发~ 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一點點小刀刀

晚上收到了某招聘軟件的HR的消息,心里慌的不行。
因為很想換崗位了,可是當機會來的時候,我卻只能表示能力不行。
所以要速速的加油了!!!

開始學習的分割

日常一點點小雞血!
請不要假裝努力,結果不會陪你演戲。

面向對象高級編程

使用@property

Python內置的@property將方法變成屬性調用。

class Student(object):@propertydef score(self):return self._score@score.setterdef 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 = pathdef __getattr__(self, path):return Chain('%s/%s' % (self._path, path))def __str__(self):return self._path__repr__ = __str__ #無論API怎么變,SDK都可以根據URL實現完全動態的調用
  • __call__

還得看第二遍...明天一定要弄懂了

晚安~

總結

以上是生活随笔為你收集整理的小李飞刀:Python我又来啦,例无虚发~的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。