Python中操作符重載用法分析
本文實(shí)例講述了Python中操作符重載用法。分享給大家供大家參考,具體如下:
類(lèi)可以重載python的操作符
操作符重載使我們的對(duì)象與內(nèi)置的一樣。__X__的名字的方法是特殊的掛鉤(hook),python通過(guò)這種特殊的命名來(lái)攔截操作符,以實(shí)現(xiàn)重載。 python在計(jì)算操作符時(shí)會(huì)自動(dòng)調(diào)用這樣的方法,例如:
如果對(duì)象繼承了__add__方法,當(dāng)它出現(xiàn)在+表達(dá)式中時(shí)會(huì)調(diào)用這個(gè)方法。通過(guò)重載,用戶(hù)定義的對(duì)象就像內(nèi)置的一樣。
在類(lèi)中重載操作符
1、操作符重載使得類(lèi)能攔截標(biāo)準(zhǔn)的python操作。
2、類(lèi)可以重載所有的python的表達(dá)式操作符。
3、類(lèi)可以重載對(duì)象操作:print,函數(shù)調(diào)用,限定等。
4、重載使得類(lèi)的實(shí)例看起來(lái)更像內(nèi)置的。
5、重載是通過(guò)特殊命名的類(lèi)方法來(lái)實(shí)現(xiàn)的。
方法名 重載的操作說(shuō)明 調(diào)用表達(dá)式
__init__ 構(gòu)造函數(shù) 創(chuàng)建對(duì)象:class()
__del__ 析構(gòu)函數(shù) 釋放對(duì)象的時(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測(cè)試
__setitem__ 索引賦值 x[key] = value
__getslice__ 分片 x[low:high]
__len__ 長(zhǎng)度 len(x)
__cmp__ 比較 x == Y ,x < y
__radd__ 右邊的操作符"+" 非實(shí)例 + 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)容可查看本站專(zhuān)題:《Python正則表達(dá)式用法總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門(mén)與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
200 行python 代碼實(shí)現(xiàn) 2048 游戲
2048這個(gè)小游戲大家都不陌生,應(yīng)該都玩過(guò),之前已經(jīng)在網(wǎng)上見(jiàn)過(guò)各個(gè)版本的2048實(shí)現(xiàn)了,有JAVA、HTML5等,今天我就給大家來(lái)一個(gè)我200 行python 代碼實(shí)現(xiàn)的2048 游戲,感興趣的朋友一起看看吧2018-01-01
Pytorch中Tensor與各種圖像格式的相互轉(zhuǎn)化詳解
這篇文章主要介紹了Pytorch中Tensor與各種圖像格式的相互轉(zhuǎn)化詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
Python7個(gè)爬蟲(chóng)小案例詳解(附源碼)上篇
這篇文章主要介紹了Python7個(gè)爬蟲(chóng)小案例詳解(附源碼)上篇,本文章內(nèi)容詳細(xì),通過(guò)案例可以更好的理解爬蟲(chóng)的相關(guān)知識(shí),七個(gè)例子分為了三部分,本次為上篇,共有二道題,需要的朋友可以參考下2023-01-01
Python通過(guò)遞歸函數(shù)輸出嵌套列表元素
這篇文章主要介紹了Python通過(guò)遞歸函數(shù)輸出嵌套列表元素,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10
python動(dòng)態(tài)參數(shù)用法實(shí)例分析
這篇文章主要介紹了python動(dòng)態(tài)參數(shù)用法,以實(shí)例形式較為詳細(xì)的分析了Python中動(dòng)態(tài)參數(shù)的功能及使用技巧,需要的朋友可以參考下2015-05-05
Python實(shí)現(xiàn)亂序文件重新命名編號(hào)
這篇文章主要為大家詳細(xì)介紹一下Python的一個(gè)神操作,那就是實(shí)現(xiàn)亂序文件重新命名編號(hào)功能,文中的示例代碼講解詳細(xì),感興趣的可以嘗試一下2022-08-08
python簡(jiǎn)單的函數(shù)定義和用法實(shí)例
這篇文章主要介紹了python簡(jiǎn)單的函數(shù)定義和用法,實(shí)例分析了Python自定義函數(shù)及其使用方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-05-05

