python學習 十二 魔法方法

2022-06-22 18:24:09 字數 814 閱讀 5851

魔法方法是指用__ __包起來的方法,可以不直接呼叫方法或者呼叫其它函式時會呼叫到對應的魔法方法。這種拼寫表示名字有特殊含義,不要在自己的程式中使用這種名字。先對魔法方法的幾個特點強調一下:

基本序列的魔法方法

當用len()函式去獲取乙個物件的長度時,會呼叫該物件內部的__len__方法,這個方法就會返回集合中所含專案的數量。

class

students(object):

def__init__(self, *args):

self.names =args

def__len__

(self):

return

len(self.names)

>>> ss = students('

bob', '

alice

', '

tim'

)>>> print

len(ss)

3

凡是在類中定義了這個__getitem__ 方法,那麼它的例項物件(假定為p),可以像這樣p[key] 取值,當例項物件做p[key] 運算時,會呼叫類中的方法__getitem__。

只能為可以修改的物件定義這個方法。在類中定義了這個__setitem__ 方法,那麼它的例項物件(假定為p),可以像這樣p[key] = value賦值,當例項物件做p[key] =value 賦值運算時,會呼叫類中的方法__setitem__。

只能為可以修改的物件定義這個方法。在類中定義了這個__delitem__ 方法,那麼它的例項物件(假定為p),當用del p[key]去刪除時,會呼叫類中的方法__delitem__。

Python魔法方法 基本的魔法方法

new cls 1.new 是在乙個物件例項化時候所呼叫的第乙個方法 2.他的第乙個引數是這個類,其他的引數是用來直接傳遞給 init 方法 3.new 決定是否使用該 init 方法,因為.new 可以直接呼叫其他類的構造方法,或者返回別的例項物件來作為本類的例項,如果 new 沒有返回例項物件,...

python 魔法方法

魔法方法具有一定的特徵 new cls class capstr str def new cls,string 修改新類裡的new方法,需傳入乙個引數 string string.upper return str.new cls,string 用父類裡的new方法進行返回,直接飯後構造後的物件def...

python魔法方法

python魔術方法是特殊方法的暱稱。它是簡單而又強大,為了被python直譯器呼叫而存在的方法。python提供豐富的元物件協議,讓語言的使用者和核心開發者擁有並使用同樣的工具 例子引用 流暢的python 一摞python風格的紙牌 import collections namedtuple用來...