魔法方法是指python中自帶的被雙下劃線包圍的方法,它們在特殊情況下會被自動呼叫。
getattr(self, name)
定義當使用者試圖獲取乙個不存在的屬性時的行為
getattribute(self, name)
定義當該類的屬性被訪問時的行為
setattr(self, name, value)
定義當乙個屬性被設定時的行為
delattr(self, name)
定義當乙個屬性被刪除時的行為
dir(self)
定義當 dir() 被呼叫時的行為
比如
class
test
: x=
0def
__getattr__
(self,name)
:print
("use getattr"
)def
__setattr__
(self,name,value)
:print
("use setattr"
)a=test(
)a.x=
1#use setattr
a.y #use getattr
魔法方法還有很多,具體用法可以看以下鏈結 Python魔法方法 基本的魔法方法
new cls 1.new 是在乙個物件例項化時候所呼叫的第乙個方法 2.他的第乙個引數是這個類,其他的引數是用來直接傳遞給 init 方法 3.new 決定是否使用該 init 方法,因為.new 可以直接呼叫其他類的構造方法,或者返回別的例項物件來作為本類的例項,如果 new 沒有返回例項物件,...
python的魔法 Python 魔法方法
先給個例子 class frenchdeck ranks str n for n in range 2,11 list jqka suits spades diamonds clubs hearts split def init self self.cards card rank,suit for ...
python 魔法方法
魔法方法具有一定的特徵 new cls class capstr str def new cls,string 修改新類裡的new方法,需傳入乙個引數 string string.upper return str.new cls,string 用父類裡的new方法進行返回,直接飯後構造後的物件def...