python 面向?qū)ο缶幊?/h1>

一.python的面向?qū)ο缶幊?/h2>

? ? ? ? 在java 里,萬物皆對象入问,不再考慮程序的執(zhí)行具體過程丹锹,而把對象作為基本單元,一個對象包含了數(shù)據(jù)(屬性)和操作數(shù)據(jù)的函數(shù)(方法)芬失,數(shù)據(jù)封裝楣黍、繼承和多態(tài)是面向?qū)ο蟮娜筇攸c

1.1 類和實例

python 中的類通過class關鍵字定義


1.2訪問限制

? ? ? ? 在Class內(nèi)部,可以有屬性和方法棱烂,而外部代碼可以通過直接調(diào)用實例變量的方法來操作數(shù)據(jù)租漂,這樣,就隱藏了內(nèi)部的復雜邏輯颊糜。要讓內(nèi)部屬性不被外部訪問哩治,可以把屬性的名稱前加上兩個下劃線__,在Python中衬鱼,實例的變量名如果以__開頭锚扎,就變成了一個私有變量(private),只有內(nèi)部可以訪問馁启,外部不能訪問,所以,我們把Student類改一改:


1.3 繼承和多態(tài)

? 1.3.1 繼承

? ? ? ? 當我們定義一個class的時候惯疙,可以從某個現(xiàn)有的class繼承翠勉,新的class稱為子類(Subclass),而被繼承的class稱為基類霉颠、父類或超類(Base class对碌、Super class),繼承的好處:1>.子類獲得了父類的全部功能

? ? ? ? ? ? ? ? ? ? ? 2>.子類可以覆蓋父類的方法,(也就是改進父類的方法蒿偎,也就是多態(tài))

1.3.2 多態(tài)

? ? ? ? 當我們定義一個class的時候朽们,我們實際上就定義了一種數(shù)據(jù)類型。我們定義的數(shù)據(jù)類型和Python自帶的數(shù)據(jù)類型诉位,比如str骑脱、list、dict沒什么兩樣苍糠,判斷一個變量是否是某個類型可以用isinstance()判斷


1.4 使用__slots__

? ? ? ? Python允許在定義class的時候叁丧,定義一個特殊的__slots__變量,來限制該class實例能添加的屬性,在子類中也定義__slots__岳瞭,這樣拥娄,子類實例允許定義的屬性就是自身的__slots__加上父類的__slots__。


1.5 多重繼承

MixIn 設計:在設計類的繼承關系時瞳筏,通常稚瘾,主線都是單一繼承下來的,例如姚炕,Ostrich繼承自Bird摊欠。但是,如果需要“混入”額外的功能钻心,通過多重繼承就可以實現(xiàn)凄硼,比如,讓Ostrich除了繼承自Bird外捷沸,再同時繼承Runnable摊沉。這種設計通常稱之為MixIn,這樣一來痒给,我們不需要復雜而龐大的繼承鏈说墨,只要選擇組合不同的類的功能,就可以快速構造出所需的子類苍柏。


1.6 定制類

? ? ? ? 看到類似__slots__這種形如__xxx__的變量或者函數(shù)名就要注意尼斧,這些在Python中是有特殊用途的。__slots__我們已經(jīng)知道怎么用了试吁,__len__()方法我們也知道是為了能讓class作用于len()函數(shù)棺棵。除此之外楼咳,Python的class中還有許多這樣有特殊用途的函數(shù),可以幫助我們定制類

1.6.1? __str__ : ?定義__str__()方法烛恤,返回一個好看的字符串

1.6.2 __iter__ :如果一個類想被用于for ... in循環(huán)母怜,類似list或tuple那樣,就必須實現(xiàn)一個__iter__()方法缚柏,該方法返回一個迭代對象苹熏,然后,Python的for循環(huán)就會不斷調(diào)用該迭代對象的__next__()方法拿到循環(huán)的下一個值币喧,直到遇到StopIteration錯誤時退出循環(huán)


1.6.3 __getattr__ :我們調(diào)用類的方法或?qū)傩詴r轨域,如果不存在,就會報錯

1.6.4. __call__ :任何類杀餐,只需要定義一個__call__()方法干发,就可以直接對實例進行調(diào)用

1.7 使用枚舉

精確地控制枚舉類型挚赊,可以從Enum派生出自定義類


最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者

  • 序言:七十年代末秸妥,一起剝皮案震驚了整個濱河市敦迄,隨后出現(xiàn)的幾起案子链蕊,更是在濱河造成了極大的恐慌亿鲜,老刑警劉巖篷牌,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件假褪,死亡現(xiàn)場離奇詭異光戈,居然都是意外死亡跨琳,警方通過查閱死者的電腦和手機自点,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來脉让,“玉大人桂敛,你說我怎么就攤上這事〗η保” “怎么了术唬?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長滚澜。 經(jīng)常有香客問我粗仓,道長,這世上最難降的妖魔是什么设捐? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任借浊,我火速辦了婚禮,結(jié)果婚禮上萝招,老公的妹妹穿的比我還像新娘蚂斤。我一直安慰自己,他們只是感情好槐沼,可當我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布曙蒸。 她就那樣靜靜地躺著捌治,像睡著了一般。 火紅的嫁衣襯著肌膚如雪逸爵。 梳的紋絲不亂的頭發(fā)上具滴,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天,我揣著相機與錄音师倔,去河邊找鬼。 笑死周蹭,一個胖子當著我的面吹牛趋艘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播凶朗,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼瓷胧,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了棚愤?” 一聲冷哼從身側(cè)響起搓萧,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎宛畦,沒想到半個月后瘸洛,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡次和,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年反肋,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片踏施。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡石蔗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出畅形,到底是詐尸還是另有隱情养距,我是刑警寧澤,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布日熬,位于F島的核電站棍厌,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏碍遍。R本人自食惡果不足惜定铜,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望怕敬。 院中可真熱鬧揣炕,春花似錦、人聲如沸东跪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至丁恭,卻和暖如春曹动,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背牲览。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工墓陈, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人第献。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓贡必,卻偏偏與公主長得像,于是被迫代替她去往敵國和親庸毫。 傳聞我的和親對象是個殘疾皇子仔拟,可洞房花燭夜當晚...
    茶點故事閱讀 45,876評論 2 361

推薦閱讀更多精彩內(nèi)容