面向對象簡單介紹

面向對象簡單介紹

面向對象
類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 09:33

相關推薦

  • 【26期】Linux第二周學習小總結

    關于用戶組的一些小小的整理     本周學習很多的知識,一些文件管理的技巧和命令,重定向和管道的實用技巧和拓展,最后則是到了我們的用戶組的權限和管理,既然說到了管理,我們都知道在Linux中,老師講的最多的一句話就是一切皆文件,既然是文件就會有用戶去用,在里面進行各種的操作,比如增刪改查啊,對文件的重新定義啊,那我們就…

    2017-07-21
  • iptables 從入門到進階

    Linux的防火墻體系主要工作在網絡層,針對TCP/IP數據包實施過濾和限制,屬于典型的包過濾防火墻(或網絡層防火墻)。在Linux中netfilter和iptables都是指Linux防火墻。區別在于: netfilter:指的是Linux內核中實現包過濾防火墻的內部結構,不以程序或文件的形式存在,屬于“內核態”的防火墻功能體系。 iptables:指的是…

    Linux干貨 2017-01-10
  • Linux之bash shell腳本編程入門篇(一)

    什么是bash shell腳本編程? 答:Linux里面有多種shell,而CentOS和redhat的默認shell是bash shell。至于shell腳本,這個跟windows操作系統里面的批處理文件有點像(.bat的文件)。不知道大家還是否記得Linux的哲學思想嗎?其中有那么兩點點:由眾多目的的單一應用程序組成:一個程序只做一件事,且做好;組合目的…

    Linux干貨 2016-08-15
  • 任務計劃

                          Linux任務計劃 一、任務計劃     (1)未來的某一個時間點執行一次某任務:at、batch     (2)周期性運行某…

    2017-05-14
  • “Apache” 服務器中的戰斗機

    一,apache世界使用排名第一的web服務器軟件。它被音譯為阿帕奇,與武裝直升機里的佼佼者阿帕奇同名,它雖沒有阿帕奇那么霸氣的外觀,但是它具有和它一樣的強大火力,它可以運行在幾乎所有廣泛使用的計算機平臺上,由于其跨平臺和安全性被廣泛使用,是最流行的Web服務器端軟件之一。它快速、可靠并且可通過簡單的API擴充,將Perl/Python等解釋器編譯到服務器中…

    2017-08-19
  • 【聽說要寫一篇文章,我覺得標題比較長的人一定特別帥?!?

    我叫小問。 計劃是學好馬哥所教授的知識。 目標是找到一份好工作!

    Linux干貨 2016-10-23
欧美性久久久久