面向對象簡單介紹

面向對象簡單介紹

面向對象
類class:屬性和方法的集合
對象:類的具象,是一個實體
面向對象三要素:
1、封裝:將數據和操作組裝到一起(組裝),
隱藏數據:對外只暴露一些接口,通過接口訪問對象。
2、繼承:復用,多繼承少修改,OCP(Open-closed Principle)
3、多態:
定義:class MyClass
類的定義就會產生一個類對象,類定義中的變量和方法都是類的屬性(保存在類的__dicd__中)
實例化:a = MyClass(),生成了一個類的對象a
實例的初始化 __init__(其內的參數為實例的變量)
實例的變量是每個實例自己的變量,是自己獨有的,類的變量是類的實例共享的屬性和方法。都保存在各自的__dict__中。

封裝:
類方法:
在類定義中,使用@classmethod裝飾器修飾,必須至少有一個參數,第一個參數給了cls,cls指代類對象自身
靜態方法:
在類定義中,使用@staticmethod裝飾器修飾,調用時,不會隱式的傳入參數

保護變量:在變量前加_,(開發者之間的約定,解釋器沒做任何改變)
私有變量:在變量前加__,(解釋器將變量名字改了,變成 _類名__變量名)

屬性裝飾器:
使用@property裝飾,后面跟的函數名就是以后的屬性名,也是getter。
@property
def age(self):
return self.__age
setter裝飾器,可以改屬性
@age.setter
def age(self,vaule)
self.__age = vaule
deleter裝飾器,可以刪除屬性,很少用
property必須在前,setter在后

繼承:
class Cat(Animal),Cat繼承了Animal的屬性和方法
繼承時,公有的,子類和實例都可以隨意訪問,私有成員被隱藏,子類和實例不可直接訪問,私有變量所在的類內的方法可以訪問這個私有變量

如果在子類中寫相同的屬性或方法,會覆蓋父類的方法。
繼承中的初始化:
如果父類中定義了__init__方法,應該在子類中調用它(使用 super().__init__(age) 方法)

多繼承:
一個類繼承了多個類,也就是有多個父類,輕易不要用

Mixin:
一個復雜的類往往需要許多功能,這些功能可能來自不同的類,這就需要有很多的類組合在一起,由Mixin實現
Mixin本質上是多繼承實現的,體現的是一種組合的設計模式

 

 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/88329

(0)
10590628461059062846
上一篇 2017-11-12 20:28
下一篇 2017-11-13

相關推薦

  • 我們都在前行的路上

    我們都在前行的路上         從0到1是一種突破,年少輕狂到心有余而力不足,力挽狂瀾到恬淡人生需伏地腳踏實地地前行,漂泊在一線都市,立足我圖網,途徑百勝,一次機緣巧合轉戰阿里,對于一個工作6年的弄潮兒,他將所有經歷的化作前行的動力和堅韌不拔的耐力,也許不經意,但卻理所當然,…

    Linux干貨 2016-11-03
  • Linux的常用的計劃任務(一次任務與周期性任務) at & cron

      在Linux日常維護工作中,維護員不可能每時每刻都守在服務前前,但如果遇到例行的操作要進行怎么辦?設定計劃任務!?     Linux任務計劃、周期性任務執行     ? 未來的某時間點執行一次任務:      &n…

    Linux干貨 2016-09-09
  • 一鍵搭建mysql集群系列一

    一鍵自動安裝mysql 5.7 shell腳本自動化安裝二進制mysql-5.7 本節主要用到四個shell腳本 和 一臺資料存儲機器(IP:192.168.42.26) install_mysql.sh 自動化安裝mysql腳本 ntpdate.sh 時間同步腳本 system_init.sh 系統初始化腳本 yum.sh yum源配置腳本 執行步驟: 1…

    2017-05-13
  • 密碼保護:ansible書籍部分目錄

    無法提供摘要。這是一篇受保護的文章。

    Linux干貨 2015-12-14
  • 馬哥教育網絡班21期+第6周課程練習

    請詳細總結vim編輯器的使用并完成以下練習題1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; %s/^([[:space:]]{1,}.*)/#\1/s 2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行…

    Linux干貨 2016-08-10
  • 循環體

    for 變量名in 列表;do 循環體 done ?執行機制: 依次將列表中的元素賦值給“變量名”; 每次賦值后即執行一次循環體; 直到列表中的元素耗盡,循環結束 列表生成方式: (1) 直接給出列表 (2) 整數列表: (a) {start..end} (b) $(seq[start [step]] end) (3) 返回列表的命令  &nbsp…

    Linux干貨 2016-08-21
欧美性久久久久