Python中操作符過載用法分析

2022-10-04 21:57:31 字數 1262 閱讀 3684

類可以過載python的操作符

操作符過載使我們的物件與內建的一樣。__x__的名字的方法是特殊的掛鉤(hook),python通過這種特殊的命名來攔截操作符,以實現過載。 python在計算操作符時會自動呼叫這樣的方法,例如:

如果物件繼承了__add__方法,當它出現在+表示式中時會呼叫這個方法。通過過載,使用者定義的物件就像內建的一樣。

在類中過載操作符

1、操作符過載使得類能攔截標準的python操作。

2、類可以過載所有的python的表示式操作符。

3、類可以過載物件操作:print,函式呼叫,限定等。

4、過載使得類的例項看起來更像內建的。

5、過載是通過特殊命名的類方法來實現的。

方法名        過載的操作說明        呼叫表示式

__init__    建構函式        建立物件:class()

www.cppcns.com__del__        析構函式        釋放物件的時候

__add__      &nb程式設計客棧sp; 「+」            x + y

__or__        「|」            x | y

__repr__    列印,轉換        print x, `x`

__call__    函式呼叫        x()

__getattr__    屬性引用        x.undefined

__getitem__    索引            x[key],for迴圈,in測試

__setitem__    索引賦值        x[key] = value

__getslice__    分片            x[low:high]

__len__        長度            len(x)

__cmp__        比較        &www.cppcns.comnbsp;   x == y ,x < y

__radd__    右邊的操作符"+"        非例項 + x

例子:__getitem__攔截了所有的索引操作

>>> class indexer:

def __getitem__(self,index):

return index ** 2

>>> x = indexer()

>>> for i in range(5):

print x[i] #x[i]將呼叫__getitem__(x,i)01

4916

Python中的操作符過載

運算子過載是指在方法中攔截內建的操作 當類的例項出現在內建操作中,python會自動呼叫自定義的辦法,並且返回自定義方法的操作結果。類可以過載python的操作符 操作符過載使我們的物件與內建的一樣。x 的名字的方法是特殊的掛鉤 hook python通過這 種特殊的命名來攔截操作符,以實現過載。p...

python中的操作符過載示例

最近在做乙個許可權系統,期望的效果如下 許可權部分是乙個二級結構,contenttype.action 假定對外暴露的介面為 perms 變數,期望能通過 if perms.contentname 來判斷使用者是否擁有contentname中的任一action的許可權,通過 if perms.con...

操作符過載

ifndef vertex h define vertex h class vertex vertex float px float py float pz vertex operator const vertex p vertex operator const vertex p void oper...