ooa:物件導向分析
oop:物件導向程式設計
ood:物件導向設計
關於self:python的self相當於c++的this指標。由同乙個類可以生成無數的物件,當乙個物件的方法被呼叫的時候,物件會將自身作為第乙個引數傳遞給self引數,接受到這個self引數時,python就知道是哪個物件在呼叫方法了。
在類定義的時候,把self寫進第乙個引數,呼叫的時候不必寫,會自動傳入。
__init__(self, param1, param2...)方法(構造方法):只要例項化乙個物件,該方法就會在物件被建立的時候自動呼叫。可以重寫該方法自定義物件的初始化操作。
訪問許可權:python預設物件的屬性和方法都是公有的,可以通過.操作符來訪問。
為了實現類似私有變數的特徵,python內部採用了一種叫name mangling(名字改編、名字重整)的技術。
在python中定義私有變數只需要在變數名或函式名前加上「__」兩個下劃線即可。
>>> class person:
__name = 'harry' #沒寫建構函式,預設是__init__(self)的形式
def getname(self):
return self.__name
>>> p = person()
>>> p.__name
traceback (most recent call last):
file "", line 1, in p.__name
attributeerror: 'person' object has no attribute '__name'
但其實是偽私有機制,還是可以可以通過" _類名__變數名 "訪問到:
>>> p._person__name
'harry'
Python學習筆記 6 高階函式 物件導向程式設計
什麼是高階函式?高階函式英文叫higher order function。什麼是高階函式?我們從實際 一步一步深入概念。以內建函式max 為例吧 max 1,5,4 5 max in function max x max 1,5,4 x 5可見,max 1,5,4 是函式呼叫,而max是函式本身,要...
javascript 學習筆記之物件導向程式設計
物件特殊屬性 資料屬性和訪問器屬性 1 資料屬性 configurable 是否可刪除 enumerable 是否可列舉for in writable 是否可寫 value 值 要修改預設屬性必須使用defineproperty object,key,descriptor 方法 例如 var per...
python 烏龜和魚遊戲(物件導向例項)
pygame 遊戲程式設計 按以下要求定義乙個烏龜類和魚類並嘗試編寫遊戲 假設遊戲場景為範圍 x,y 為0 x 10,0 y 10 遊戲生成1只烏龜和10條魚 它們的移動方向均隨機 烏龜的最大移動能力為2 它可以隨機選擇1還是2移動 魚兒的最大移動能力是1 當移動到場景邊緣,自動向反方向移動 烏龜初...