可重载的运算符:
方法 | 重载 | 调用 | |
---|---|---|---|
__new__ | 创建 | 在__init__之前创建对象 | |
__init__ | 构造函数 | 对象建立: x = Class(args) | |
__del__ | 析构函数 | x对象收回__call__ | 函数调用 x(*args, **kwargs) |
__delete__ | |||
__dict__ | 属性字典,实例调用时只返回实例属性 类调用时只返回类属性 | ||
__slots__ | |||
__class__ | 实例所属的类的链接 | ||
__bases__ | 实例超类引用的元组 | ||
__getattr__ | 获得属性(针对未定义的属性) 点号运算 | ||
__setattr__ | 属性赋值运算 | ||
__delattr__ | 属性删除运算 | ||
__getattribute__ | 获得属性(针对所有属性) | ||
__and__ | 与运算 | 1 and 2 | |
__or__ | 或运算 | 1 or 2 | |
__str__ | 适合人读取的信息, 当没有实现时,返回repr的内容 | pirnt(x) repr(x) str(x) | |
__repr__ | 适合机器读取的信息 | ||
__getiiem__ | 索引运算 | x[key], x[i:j], 没iter时的for循环和其他迭代器 | |
__setitem__ | 索引赋值语句 | x[key]=value x[i:j]=sequence | |
__delitem__ | 索引和分片删除 | del x[key], del x[i:j] | |
__len__ | 长度 | len(x), 如果没有__bool__, 真值测试 | |
__bool__ | 布尔测试 | bool(x), 真测试,在2.6中是__nonzero__ | |
__lt__,__gt__ | |||
__le__,__ge__ | |||
__eq__,__ne__ | 特定的比较 | x |
|
__radd__ | 右侧加法 | other + x | |
__iadd__ | 实地加法 | x + y | |
__iter__, __next__ | 迭代环境 | I=iter(x), next(I); for loops | |
__contains__ | 成员关系测试 | item in x | |
__index__ | 整数值 | ||
__enter__, __exit__ | 环境管理器 | with obj as var: | |
__get__, __set__ | 描述符属性 | x.attr, x.attr=value, del x.attr | |
__index__ | 返回某一个实例的整数值 | hex(x), bin(x), oct(x) |
|
|