魚c筆記 Python物件導向程式設計

2021-08-15 08:32:44 字數 976 閱讀 3595

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 當移動到場景邊緣,自動向反方向移動 烏龜初...