[toc]

特殊方法和运算符重载

Python 的运算符实际上是通过调用对象的特殊方法实现的. 比如:

Python 第八节 第十二课

执行结果:

Python 第八节 第十二课

常见的特殊方法统计如下:

__init__                        构造方法                 对象创建: p = Person()

__del__                        析构方法                 对象回收  对象回收

__repr__, __str__        打印, 转换                print(a)

__call__                       函数调用                  a()

__getattr__                   点号运算                  a.xxx

__satattr__                   属性赋值                  a.xxx = value

__gettitem__                 索引运算                  a[key]

__setitem__                  索引赋值                  a[key]

__len__                         长度                         len(a)

每个运算符实际上都是应对了相应的方法, 统计如下:

运算符+              __add__                              加法

运算符-               __sub__                              减法

<, <=, ==            __it__, __le__, __eq__        比较运算符

>, >=, !=             __gt__, __ge__, __ne__      比较运算符

|, ^, &                 __or__, __xor__, __and__   或, 异或, 与

<<, >>                __lshift__, __rshift__            左移, 右移

*, /                      __mul__, __truediv__          乘, 浮点除

%, //                   __mod__, __floordiv__         模运算 ( 取余), 整数除

**                        __pow__                               指数运算

我们可以重写上面的特殊方法, 即实现了 "运算符的重载".

Python 第八节 第十二课

执行结果:

Python 第八节 第十二课

相关文章:

  • 2022-01-13
  • 2021-06-28
  • 2021-07-07
  • 2021-09-23
  • 2021-07-18
  • 2021-09-08
  • 2021-06-14
  • 2021-11-19
猜你喜欢
  • 2021-07-28
  • 2021-11-17
  • 2021-12-08
  • 2021-11-05
  • 2022-01-09
  • 2021-08-15
  • 2021-12-14
相关资源
相似解决方案