Python中操作符重載用法分析
本文實例講述了Python中操作符重載用法。分享給大家供大家參考,具體如下:
類可以重載python的操作符
操作符重載使我們的對象與內(nèi)置的一樣。__X__的名字的方法是特殊的掛鉤(hook),python通過這種特殊的命名來攔截操作符,以實現(xiàn)重載。 python在計算操作符時會自動調(diào)用這樣的方法,例如:
如果對象繼承了__add__方法,當(dāng)它出現(xiàn)在+表達式中時會調(diào)用這個方法。通過重載,用戶定義的對象就像內(nèi)置的一樣。
在類中重載操作符
1、操作符重載使得類能攔截標(biāo)準(zhǔn)的python操作。
2、類可以重載所有的python的表達式操作符。
3、類可以重載對象操作:print,函數(shù)調(diào)用,限定等。
4、重載使得類的實例看起來更像內(nèi)置的。
5、重載是通過特殊命名的類方法來實現(xiàn)的。
方法名 重載的操作說明 調(diào)用表達式
__init__ 構(gòu)造函數(shù) 創(chuàng)建對象:class()
__del__ 析構(gòu)函數(shù) 釋放對象的時候
__add__ “+” x + y
__or__ “|” x | y
__repr__ 打印,轉(zhuǎn)換 print x, `x`
__call__ 函數(shù)調(diào)用 X()
__getattr__ 屬性引用 x.undefined
__getitem__ 索引 x[key],for循環(huán),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]將調(diào)用__getitem__(x,i) 0 1 4 9 16
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python正則表達式用法總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計有所幫助。
相關(guān)文章
django 數(shù)據(jù)庫返回queryset實現(xiàn)封裝為字典
這篇文章主要介紹了django 數(shù)據(jù)庫返回queryset實現(xiàn)封裝為字典,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
Python使用scipy.fft進行大學(xué)經(jīng)典的傅立葉變換
傅里葉變換是在高數(shù)是一個很重要的知識點,本文將介紹Python使用scipy.fft進行大學(xué)經(jīng)典的傅立葉變換,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-06-06
TensorFlow2.4完成Word2vec詞嵌入訓(xùn)練方法詳解
這篇文章主要為大家介紹了TensorFlow2.4完成Word2vec詞嵌入訓(xùn)練方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11

