Python 第八节 第十二课

    科技2022-09-14  127

    [toc]

    特殊方法和运算符重载

    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__                               指数运算

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

    执行结果:

    Processed: 0.013, SQL: 12