Python:重載運(yùn)算符

  • 運(yùn)算符重載有兩個(gè)參數(shù):
    1. self ——該對(duì)象本身
    2. other ——跟在運(yùn)算符后面的對(duì)象
  • 以下為重載運(yùn)算符的參考列表
函數(shù)名稱 參數(shù)列表 重載符號(hào)
__add__ (self, other) +
__sub__ (self, other) -
__mul__ (self, other) *
__div__ (self, other) /
__floordiv__ (self, other) //
__mod__ (self, other) %
__pow__ (self, other) **
__lshift__ (self, other) <<
__rshift__ (self, other) >>
__and__ (self, other) &
__or__ (self, other) |
__xor__ (self, other) ^

以上函數(shù)名前增加 i,例如__ipow__則是重載 **= 運(yùn)算符,__iadd__是重載 += 運(yùn)算符。

函數(shù)名稱 參數(shù)列表 重載符號(hào)
__invert__ (self) ~
__pos__ (self) + (一元運(yùn)算符,例如:+a)
__neg__ (self) - (一元運(yùn)算符,例如:-a)
函數(shù)名稱 參數(shù)列表 重載符號(hào)
__eq__ (self, other) ==
__ne__ (self, other) !=
__lt__ (self, other) <
__gt__ (self, other) >
__le__ (self, other) <=
__ge__ (self, other) >=

在我所見(jiàn)的教程中,這些運(yùn)算符都有確切的含義。這給很多人帶來(lái)一個(gè)刻板印象——這些符號(hào)的重載方式是有模板的。

事實(shí)上,這些符號(hào)沒(méi)有被強(qiáng)制規(guī)定有什么意義,雖然人們一般按照原有的作用重載,但也可以重載為其他功能。
例如Django的orm中,查詢語(yǔ)句Q重載了 | 以及其他位運(yùn)算符,但作用卻是邏輯運(yùn)算。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • C++運(yùn)算符重載-上篇 本章內(nèi)容:1. 運(yùn)算符重載的概述2. 重載算術(shù)運(yùn)算符3. 重載按位運(yùn)算符和二元邏輯運(yùn)算符4...
    Haley_2013閱讀 2,385評(píng)論 0 51
  • C++運(yùn)算符重載-下篇 本章內(nèi)容:1. 運(yùn)算符重載的概述2. 重載算術(shù)運(yùn)算符3. 重載按位運(yùn)算符和二元邏輯運(yùn)算符4...
    Haley_2013閱讀 1,532評(píng)論 0 49
  • 注意:本文中代碼均使用 Qt 開發(fā)編譯環(huán)境 面向?qū)ο蟮亩鄳B(tài)性可以分為四類:重載多態(tài)、強(qiáng)制多態(tài)、包含多態(tài)和參數(shù)多態(tài),...
    趙者也閱讀 1,267評(píng)論 0 3
  • 印象中,第一次接觸《紅樓夢(mèng)》的確切時(shí)間是在高中的語(yǔ)文課本中,那篇題為《林黛玉進(jìn)賈府》的課文。高中的語(yǔ)文課,大...
    會(huì)走的樹閱讀 776評(píng)論 3 4
  • 我已經(jīng)失業(yè)很多天了。我是人工智能專業(yè)的博士,但是卻沒(méi)有人肯雇傭我。 好幾天來(lái),我無(wú)助地在大街上徘徊,又徘徊,失望...
    原來(lái)我也在這閱讀 305評(píng)論 2 7

友情鏈接更多精彩內(nèi)容