Python中的操作符重載


類可以重載python的操作符
操作符重載使我們的對象與內置的一樣。__X__的名字的方法是特殊的掛鈎(hook),python通過這
 
種特殊的命名來攔截操作符,以實現重載。 python在計算操作符時會自動調用這樣的方法,例如:
 
如果對象繼承了__add__方法,當它出現在+表達式中時會調用這個方法。通過重載,用戶定義的對
 
象就像內置的一樣。
 
在類中重載操作符
1、操作符重載使得類能攔截標准的python操作。
2、類可以重載所有的python的表達式操作符。
3、類可以重載對象操作:print,函數調用,限定等。
4、重載使得類的實例看起來更像內置的。
5、 重載是通過特殊命名的類方法來實現的。
方法名        重載的操作說明        調用表達式
__init__    構造函數        創建對象:class()
__del__        析構函數        釋放對象的時候
__add__        “+”            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__        比較            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)
0
1
4
9
16


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM