• Python中类方法重载---大部分


    重载方法格式:
    def __xxx__(self,other):
    ...
    注:重载方法格式
    -----------------------------------------------------------------运算符
    运算符重载:
    作用:
    让自定义的类创建的对象像内建对象一样进项运算符操作
    算数运算符:
    __add__ 加法 +
    __sub__ 减法 -
    __mul__ 乘法 *
    __truedif__ 除法 /
    __floordiv__ 地板除 //
    __mod__ 取模(求余) %
    __pow__ 幂 **

    反向算数运算符重载:
    __radd__(self, lhs) # 加法 lhs + self
    __rsub__(self, lhs) # 减法 lhs + self
    __rmul__(self, lhs) # 乘法 lhs * self
    __rtruediv__(self, lhs) # 除法 lhs / self
    __rfloordiv__(self, lhs) # 地板除 lhs // self
    __rmod__(self, lhs) # 取模 lhs % self
    __rpow__(self, lhs) # 幂运算 lhs ** self
    注:lhs(left hand side) 左手边

    复合赋值算数运算符的重载:
    __iadd__(self, other) # 加法 self += other
    __isub__(self, other) # 减法 self -= other
    __imul__(self, other) # 乘法 self *= other
    __itruediv__(self, other) # 除法 self /= other
    __ifloordiv__(self, other) # 地板除 self //= other
    __imod__(self, other) # 取模 self %= other
    __ipow__(self, other) # 幂运算 self **= other
    注:当重载后优先使用重载的方法,否则使用__add__等方法代替
    -----------------------------------------------------------------比较运算符
    比较运算符重载:
    __lt__ 小于 <
    __le__ 大于等于 <=
    __gt__ 大于 >
    __ge__ 大于等于 >=
    __eq__ 等于 ==
    __ne__ 不等于 !=
    -----------------------------------------------------------------位操作运算符
    位操作运算符重载:
    __and__ 位与 &
    __or__ 位或 |
    __xor__ 位异或 ^
    __lshift__ 左移 <<
    __rshift__ 右移 >>

    反向位操作运算符:
    __rand__ 位与 &
    __ror__ 位或 |
    __rxor__ 位异或 ^
    __rlshift__ 左移 <<
    __rrshift__ 右移 >>

    复合赋值位运算符重载:
    __iand__ 位与 &
    __ior__ 位或 |
    __ixor__ 位异或 ^
    __ilshift__ 左移 <<
    __irshift__ 右移 >>
    -----------------------------------------------------------------一元运算符
    一元运算符的重载:
    __neg__ 符号 -
    __pos__ 正号 +
    __invert__ 取反 ~
    重载格式:
    def __xxx__(self):
    pass
    -----------------------------------------------------------------内建函数
    内建函数重载:
    def __abs__(self) abs(obj) 函数调用
    def __len__(self) len(obj) 函数调用
    def __reversed__(self) reversed(obj) 函数调用
    def __round__(self) round(obj) 函数调用
    -----------------------------------------------------------------数值转换函数
    数值转换函数重载:
    __int__ int(obj)
    __float__ float(obj)
    __complex__ complex(obj)
    __bool__ bool(obj)
    -----------------------------------------------------------------布尔测试运算符
    布尔测试运算符重载:
    格式:
    def __bool__(self):
    ....
    作用:
    1) 用于bool(obj) 函数取值
    2) 用于if语句真值表达式中
    3) 用于while语句真值表达式中
    重载说明:
    当没有 __bool__(self) 方法时,真值测试将取
    __len__(self) 方法的返回值来测试布尔值
    -----------------------------------------------------------------in / not in
    in / not in 运算符重载:
    格式:
    def __contains__(self, e):
    ...
    作用:
    成员资格测试(通常)
    -----------------------------------------------------------------索引和切片
    索引和切片运算符的重载:
    重载方法:
    __getitem__(self, i) 方法
    __sefitem__(self, i, v) 方法
    __delitem__(self, i) 方法
    作用:
    让自定义类型的对象能进行索引和切片操作
    切片(slice)重载:
    切片重载同性索引重载公用的方法
    __getitem__(self, i) 切片取值
    __sefitem__(self, i, v) 切片赋值
    __delitem__(self, i) del切片删除
    -----------------------------------------------------------------迭代器重载
    迭代器:
    __next__(self):
    可迭代对象:
    __iter__(self):
    -----------------------------------------------------------------with环境管理器类内重载
    类内有__enter__ 和 __exit__ 方法的类被称为环境管理器
    能够用with进行管理的对象必须是环境管理器
    __enter__ 方法将在进入 with 语句时被调用返回由 as 变量管理的对象
    __exit__ 方法将在离开with语句时被调用,且可以用参数来判断离开with语句时是否有异常发生并作出相应的处理

  • 相关阅读:
    *Path Sum II
    *Path Sum
    Same Tree
    Symmetric Tree
    hprof网络连接
    gc
    java thread park
    sudo !!
    ecb gud
    jpda
  • 原文地址:https://www.cnblogs.com/laolibk/p/8011472.html
Copyright © 2020-2023  润新知