Python:重载运算符

作者: 子休_ | 来源:发表于2018-01-30 18:32 被阅读41次
  • 运算符重载有两个参数:
    1. self ——该对象本身
    2. other ——跟在运算符后面的对象
  • 以下为重载运算符的参考列表
函数名称 参数列表 重载符号
__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) ^

以上函数名前增加 i,例如__ipow__则是重载 **= 运算符,__iadd__是重载 += 运算符。

函数名称 参数列表 重载符号
__invert__ (self) ~
__pos__ (self) + (一元运算符,例如:+a)
__neg__ (self) - (一元运算符,例如:-a)
函数名称 参数列表 重载符号
__eq__ (self, other) ==
__ne__ (self, other) !=
__lt__ (self, other) <
__gt__ (self, other) >
__le__ (self, other) <=
__ge__ (self, other) >=

在我所见的教程中,这些运算符都有确切的含义。这给很多人带来一个刻板印象——这些符号的重载方式是有模板的。

事实上,这些符号没有被强制规定有什么意义,虽然人们一般按照原有的作用重载,但也可以重载为其他功能。
例如Django的orm中,查询语句Q重载了 | 以及其他位运算符,但作用却是逻辑运算。

相关文章

  • Python全栈之路系列之面向对象运算符重载

    运算符重载的概念如下: 运算符重载让类拦截常规的Python运算; 类可重载所有Python表达式运算符; 类也可...

  • chapter13 运算符重载

    python中的运算符重载 不能重载内置类型的运算符 不能新建运算符,只能重载现有的 is, and, or 和n...

  • 运算符重载及其他约定

    7.1 重载算术运算符 重载二元算术运算符 重载复合赋值运算符 重载一元运算符 重载比较运算符 等号运算符:‘eq...

  • C++ 部分运算符重载

    可重载的运算符 不可重载的运算符和符号 重载运算符为类的成员函数 重载运算符为友元函数 重载赋值运算符 重载流插入...

  • 2019-07-11 运算符的重载

    运算符的重载 重载运算符 (“::”,“.*”,“.”,“?:”)不能被重载。 重载运算符时,不能改变其本质,如不...

  • 运算符重载

    一.+号运算符重载 二.<<号运算符重载 三.指针运算符重载(智能指针)

  • C++运算符重载-下篇 (Boolan)

    C++运算符重载-下篇 (Boolan) 本章内容:1. 运算符重载的概述2. 重载算术运算符3. 重载按位运算符...

  • C++运算符重载-上篇 (Boolan)

    C++运算符重载-上篇 (Boolan) 本章内容:1. 运算符重载的概述2. 重载算术运算符3. 重载按位运算符...

  • C++重载

    重载 C++语言规定: 重载的运算符要保持原运算符的意义。只能对已有的运算符重载,不能增加新的运算符。重载的运算符...

  • C++运算符重载详解

    运算符重载规则 1.被重载的运算符必须是已经存在的C++运算符,不能重载自己创建的运算符; 2.运算符被重载之后,...

网友评论

本文标题:Python:重载运算符

本文链接:https://www.haomeiwen.com/subject/rpiczxtx.html