標籤:構造 特殊方法 sort 方法 一個 需要 訪問 封裝 color
1.1 類裡麵包括:類的屬性、方法
OO的特徵(Object Oriented)
封裝:資訊隱蔽技術
繼承:繼承是子類自動共用父類之間資料和方法的機制
>>> class MyClass(list): pass>>> list1.append(4)>>> list1.append(3)>>> list1.append(7)>>> list1[4, 3, 7]>>> list1.sort()>>> list1[3, 4, 7]
多態:不同對象對同一方法響應不同的行為
OOA:面對對象分析
OOP:面對對象編程
OOD:面對對象設計
對象的方法中都有一個self的參數,相等於C++的this 指標
由一個類可以產生無數的對象,這些對象都長的基本一樣,當一個對象的方法被調用的時候,對象會將自身(self)作為第一個參數,接收到這一個參數的時候,Python的類就知道是哪一個對象在調用方法了
class Ball: def SetName(self,name): self.name = name def kick(self): print(‘我是%s,你踢我幹嘛!‘,self.name)
執行之後的結果:
>>> a.Kick()我是球A,你踢我幹嘛!>>> b.Kick()我是球B,你踢我幹嘛!>>> c.Kick()我是球C,你踢我幹嘛!
1.2 python中的魔法方法:
python的對象天生擁有一些神奇的方法,他們是面對對象的python的一切,他們是可以給你的類增加魔力的特殊方法,如果你的對象實現了這些方法中的某一個,這個方法就會在特殊的情況下被python所調用,而這一切都是自動發生的。
這些具有魔力的方法都是以雙底線定義:
__init__(self):構造方法 ,該方法的魔力在於,執行個體化一個對象的時候,那麼這個方法會在這個對象建立的時候調用(c++中的建構函式,)進行初始化操作
1.2.1 公有和私人
預設的情況下類中的屬性和方法都是公有的,都是可以通過點操作符來進行訪問
為了實作類別似私人變數的特徵,python內部中採用一種name mangling(名字改編,名字重整)
在Python中定義私人變數只需要在變數名或函數名前加上“__”兩個底線,那麼這個函數或變數就會私人的了。
class Person: _name = ‘小甲魚‘
可以通過類內的方法來進行訪問
實際上是對變數作了手腳
將變數名改成了
_類名__變數名
所有上面的person類中的私人變數可以通過以下方法訪問到:
>>> p = Person()>>> p._Person__name‘小甲魚‘>>>
python 中的類