Python知識點範圍:走進面向對象
- Object Oriented Programming面向對象簡稱oop;
- 複用性、靈活性、擴充性;
- 面向對象兩個基本概念:類和對象;
- 對象包括屬性和功能,封裝性展現在功能上,外人隻知道它有這個功能,但不知道如何實作的;
- 3大基本特性:封裝性、繼承性和多态;
- 上一個類是程式員,在此基礎上繼承的類,前端程式員和後端程式員;
- 多重繼承:我是一個喜歡足球的程式員,同時內建了程式員和踢足球兩個類;
- 程式員類裡我寫了一個方法,傳回我是什麼程式員,後面繼承的前後端程式員重寫這個方法,一個傳回前端,一個傳回後端,這個就是多态;
- python2.x系列存在老式類和新式類的概念,老式類被認為接口類型,和新式類有很多差别,屬性也少,python3.x系列都是新式類;
- 兩個内建函數:dir()可以傳回對象的屬性,type()可以擷取對象的類型;
- 構造方法:在建立類的時候調用 def init (self, … );
- 析構方法:在銷毀類的時候調用 def del(self, … );
- 定義屬性的兩種方法:類裡直接定義還有構造函數裡用self.xxx定義,xx就是屬性名,這樣一來我們直接就能用self.xx調用了;
- python裡沒有通路控制,也就是沒有形如java裡的私有屬性,公有屬性的;
- self._xx,私有屬性,起名規範,可以被通路;
- self.__xx,加強型的私有屬性,直接的話不可以通路,類的屬性裡會多出一個叫"_Programer__xx"的屬性,我們可以通過這個屬性通路私有屬性,不是真正意義上的私有屬性,仍然可以被通路到,隻是實作了部分控制的功能;
- 函數和方法的差別:函數依附于對象就是方法了;
- 對象的方法就是method類型的屬性,變量可以等于方法,然後再把變量改變為字元串;
- 修飾符:@classmethod調用時隻能用類名來調用,對象是沒法調用的;
- 修飾符:@property調用時直接用名字調用就好了,不用括号和裡面的參數就可以了;
- 方法的起名也有私有設定方法,前面加一個或兩個_;
- 繼承可以讓大量的方法被複用,非常重要的特性;
- 定義類時後面加括号,括号裡面填上要繼承類名就好了;
- 推薦每個類都要繼承,至少繼承object,這個是一切對象的父類;
- 多重繼承:類的括号裡放入多個要繼承的類名;
- isinstance(a,b)判斷a是否是b的子類,issubclass(a,b)也是判斷a是不是b的子類,一樣的方法,差別是前者是内建函數;
- 引用父類方法的兩種方法:super(自己的類名, self).xx,xx就是調用的父類方法;
- 還有一種方法是:直接用父類的類名調用,因為繼承時類後面括号裡有父類,是以可以直接調用;
- 多态的要點:繼承和重寫;
喜歡的點個贊吧!