python中一些特殊方法及含义,后期会根据系统学习后修正补充归纳汇总
初始化和销毁: __init__(self [,args...]) 对象初始化,构造函数,在生成对象时调用,简单的调用方法: obj = className(args) 初始化方法,在创建对象时进行初始化操作 __del__(self) 析构方法, 释放对象时使用,删除一个对象,简单的调用方法 : del obj 析构方法,在对象被销毁前调用 字符串表示: __repr__(self) 打印,转换,转化为供解释器读取的形式,简单的调用方法 : repr(obj) 返回对象的“官方”字符串表示,通常通过交互式解释器调用,对象字符串形式 返回对象的“官方”字符串表示,通常用于在交互式环境中显示对象。 __str__(self) 用于将值转化为适于人阅读的形式,简单的调用方法 : str(obj) 返回对象的字符串表示,通常通过 str(obj) 或 print(obj) 调用,对象可读字符串形式 返回对象的字符串表示,通常用于打印对象。 5. 类型转换 实现诸如 float(),str() 等内置类型转换函数的行为的魔术方法 __int__(self) 实现 int(obj) int 的类型转换 int __long__(self) long 的类型转换 Python3.x 版本已删除 long __float__(self) 实现 float(obj) float 的类型转换 float __complex__(self) 复数类型转换 complex __oct__(self) 8 进制类型转换 oct __hex__(self) 16 进制类型转换 hex __complex__() 实现复数 complex(obj) 一元运算符: __neg__() 实现负号-运算,取负 __pos__() 实现加号+运算,取正 __abs__() 实现内置 abs() 函数的行为 ,实现 abs(obj),取绝对值 __invert__() 实现 ~ 运算符实现反转行为,实现取反~操作,取反 __round__() 实现内置 round() 函数的行为 取小数点后几位 __trunc__() 实现 math.trunc(obj) 截断取整数部分,对正数相当于floor,对负数相当于ceil __floor__() 实现 math.floor(obj) 取 向下四舍五入到最接近的整数 __ceil__() 实现 math.ceil(obj) 取 向上四舍五入到最接近的整数 比较运算(富比较): __eq__(self, other) 定义相等比较运算符 == __ne__(self, other) 定义不等比较运算符 != __lt__(self, other) 定义小于比较运算符 < __gt__(self, other) 定义大于比较运算符 > __le__(self, other) 定义小于等于比较运算符 <= __ge__(self, other) 定义大于等于比较运算符 >= 数值运算: __add__(self, other) 定义加法运算符 + 加运算 __sub__(self, other) 定义减法运算符 - 减运算 __mul__(self, other) 定义乘法运算符 * 乘运算 __truediv__(self, other) 定义真除法运算符 / 除运算 __floordiv__(self, other) 定义整除运算符 // 整除运算 __mod__(self, other) 定义取模运算符 % 求余运算 __pow__(self, other[, modulo]) 定义指数运算符 ** 乘方 (特定算术运算符 __r…… 反向数学运算符 __i……自增运算符(+= -= 等等) 如 __radd__ __iadd__ 所有下方方法都有---------不常用): 反向数学运算符: __r…… __radd__(self, other) 右加法运算(反向加法) __rsub__(self, other) 右减法运算(反向减法) __rmul__(self, other) 右乘法运算(反向乘法) __rmatmul__(self, other) 右矩阵乘法运算(反向矩阵乘法) __rtruediv__(self, other) 右真除法运算(反向真除法) __rfloordiv__(self, other) 右整除法运算(反向整除法) __rmod__(self, other) 右取模运算(反向取模) __rdivmod__(self, other) 右取模运算(反向取模) __rpow__(self, other[, modulo]) 右幂运算(反向幂运算) __rlshift__(self, other) 右移位运算(反向左移位) __rrshift__(self, other) 右移位运算(反向右移位) __rand__(self, other) 右按位与运算(反向按位与) __rxor__(self, other) 右按位异或运算(反向按位异或) __ror__(self, other) 右按位或运算(反向按位或) 自增运算符 :__i…… 实现 += -=等自增运算的魔术方法 __iadd__(self, other) 加法 += __isub__(self, other) 减法 -= __imul__(self, other) 乘法 *= __idiv__(self, other) 除法 /= __ifloordiv__(self, other) 整数除法 //= __imod__(self, other) 取余数 %= __idivmod__(self, other) 使用 divmod() 内置函数实现长除法行为 divmod(a, b) __ipow__(self, other) 指数运算 **= __ilshift__(self, other) 位运算 左移 <<= __ishift__(self, other) 位运算 右移 >>= __iand__(self, other) 位运算,并 &= __ior__(self, other) 位运算,或 |= __ixor__(self, other) 位运算,异或 ^= 容器操作: __len__(self) 定义内置函数 len() 获得长度(序列中元素的个数) __getitem__(self, key) 定义索引访问操作符 [] 按照索引获取值 切片、抽取功能 __setitem__(self, key, value) 定义索引赋值操作符 [] 按照索引赋值 索引赋值 __delitem__(self, key) 定义删除操作符 del obj[key] 按照索引删除值 __iter__() 定义对象迭代行为 返回一个迭代器 __next__ 实现迭代器协议 返回迭代器的下一个元素 __contains__ 实现成员检测 检查对象是否包含某个元素 in __reversed__() 实现逆向迭代 逆序,倒序 __get__() 等描述器特殊方法 __index__(self) 对象的索引值 当在切片表达式中使用对象时,实现到 int 的类型转换。如果您定义可能用于切片的自定义数字类型,则应定义 __index__ . 属性访问: __getattr__(self, name) 获取对象的属性。在访问不存在的属性时调用,等自定义属性访问特殊方法 __setattr__(self, name, value) 设置对象的属性。在设置属性时调用 __delattr__(self, name) 删除对象的属性。在删除属性时调用 __cmp__ (self, x) 对象比较,简单的调用方法 : cmp(obj, x) 比较运算 __call__ 函数调用,模拟可调用对象 __new__() 创造类实例 __subclasses__() 子类的弱引用列表 __bytes__() 对象的字节串表示 __format__() 对象格式化字符 __hash__() 对象的哈希值 __bool__() 对象布尔值 __dir__() 对象的属性和方法列表 __length_hint__() 对象长度估计值 __missing__() 处理字典缺失键 __match_args__ 支持结构化模式匹配
"""
python中一些特殊方法及含义,后期会根据系统学习后修正补充归纳汇总
初始化和销毁:
__init__(self [,args...])
对象初始化,构造函数,在生成对象时调用,简单的调用方法: obj = className(args) 初始化方法,在创建对象时进行初始化操作
__del__(self)
析构方法, 释放对象时使用,删除一个对象,简单的调用方法 : del obj 析构方法,在对象被销毁前调用
字符串表示:
__repr__(self)
打印,转换,转化为供解释器读取的形式,简单的调用方法 : repr(obj)
返回对象的“官方”字符串表示,通常通过交互式解释器调用,对象字符串形式
返回对象的“官方”字符串表示,通常用于在交互式环境中显示对象。
__str__(self)
用于将值转化为适于人阅读的形式,简单的调用方法 : str(obj)
返回对象的字符串表示,通常通过 str(obj) 或 print(obj) 调用,对象可读字符串形式
返回对象的字符串表示,通常用于打印对象。
5. 类型转换
实现诸如 float(),str() 等内置类型转换函数的行为的魔术方法
__int__(self) 实现 int(obj) int 的类型转换 int
__long__(self) long 的类型转换 Python3.x 版本已删除 long
__float__(self) 实现 float(obj) float 的类型转换 float
__complex__(self) 复数类型转换 complex
__oct__(self) 8 进制类型转换 oct
__hex__(self) 16 进制类型转换 hex
__complex__() 实现复数 complex(obj)
一元运算符:
__neg__() 实现负号-运算,取负
__pos__() 实现加号+运算,取正
__abs__() 实现内置 abs() 函数的行为 ,实现 abs(obj),取绝对值
__invert__() 实现 ~ 运算符实现反转行为,实现取反~操作,取反
__round__() 实现内置 round() 函数的行为 取小数点后几位
__trunc__() 实现 math.trunc(obj) 截断取整数部分,对正数相当于floor,对负数相当于ceil
__floor__() 实现 math.floor(obj) 取 向下四舍五入到最接近的整数
__ceil__() 实现 math.ceil(obj) 取 向上四舍五入到最接近的整数
比较运算(富比较):
__eq__(self, other) 定义相等比较运算符 ==
__ne__(self, other) 定义不等比较运算符 !=
__lt__(self, other) 定义小于比较运算符 <
__gt__(self, other) 定义大于比较运算符 >
__le__(self, other) 定义小于等于比较运算符 <=
__ge__(self, other) 定义大于等于比较运算符 >=
数值运算:
__add__(self, other) 定义加法运算符 + 加运算
__sub__(self, other) 定义减法运算符 - 减运算
__mul__(self, other) 定义乘法运算符 * 乘运算
__truediv__(self, other) 定义真除法运算符 / 除运算
__floordiv__(self, other) 定义整除运算符 // 整除运算
__mod__(self, other) 定义取模运算符 % 求余运算
__pow__(self, other[, modulo]) 定义指数运算符 ** 乘方
(特定算术运算符 __r…… 反向数学运算符 __i……自增运算符(+= -= 等等) 如 __radd__ __iadd__ 所有下方方法都有---------不常用):
反向数学运算符: __r……
__radd__(self, other) 右加法运算(反向加法)
__rsub__(self, other) 右减法运算(反向减法)
__rmul__(self, other) 右乘法运算(反向乘法)
__rmatmul__(self, other) 右矩阵乘法运算(反向矩阵乘法)
__rtruediv__(self, other) 右真除法运算(反向真除法)
__rfloordiv__(self, other) 右整除法运算(反向整除法)
__rmod__(self, other) 右取模运算(反向取模)
__rdivmod__(self, other) 右取模运算(反向取模)
__rpow__(self, other[, modulo]) 右幂运算(反向幂运算)
__rlshift__(self, other) 右移位运算(反向左移位)
__rrshift__(self, other) 右移位运算(反向右移位)
__rand__(self, other) 右按位与运算(反向按位与)
__rxor__(self, other) 右按位异或运算(反向按位异或)
__ror__(self, other) 右按位或运算(反向按位或)
自增运算符 :__i…… 实现 += -=等自增运算的魔术方法
__iadd__(self, other) 加法 +=
__isub__(self, other) 减法 -=
__imul__(self, other) 乘法 *=
__idiv__(self, other) 除法 /=
__ifloordiv__(self, other) 整数除法 //=
__imod__(self, other) 取余数 %=
__idivmod__(self, other) 使用 divmod() 内置函数实现长除法行为 divmod(a, b)
__ipow__(self, other) 指数运算 **=
__ilshift__(self, other) 位运算 左移 <<=
__ishift__(self, other) 位运算 右移 >>=
__iand__(self, other) 位运算,并 &=
__ior__(self, other) 位运算,或 |=
__ixor__(self, other) 位运算,异或 ^=
容器操作:
__len__(self) 定义内置函数 len() 获得长度(序列中元素的个数)
__getitem__(self, key) 定义索引访问操作符 [] 按照索引获取值 切片、抽取功能
__setitem__(self, key, value) 定义索引赋值操作符 [] 按照索引赋值 索引赋值
__delitem__(self, key) 定义删除操作符 del obj[key] 按照索引删除值
__iter__() 定义对象迭代行为 返回一个迭代器
__next__ 实现迭代器协议 返回迭代器的下一个元素
__contains__ 实现成员检测 检查对象是否包含某个元素 in
__reversed__() 实现逆向迭代 逆序,倒序
__get__() 等描述器特殊方法
__index__(self) 对象的索引值 当在切片表达式中使用对象时,实现到 int 的类型转换。如果您定义可能用于切片的自定义数字类型,则应定义 __index__ .
属性访问:
__getattr__(self, name) 获取对象的属性。在访问不存在的属性时调用,等自定义属性访问特殊方法
__setattr__(self, name, value) 设置对象的属性。在设置属性时调用
__delattr__(self, name) 删除对象的属性。在删除属性时调用
__cmp__ (self, x) 对象比较,简单的调用方法 : cmp(obj, x) 比较运算
__call__ 函数调用,模拟可调用对象
__new__() 创造类实例
__subclasses__() 子类的弱引用列表
__bytes__() 对象的字节串表示
__format__() 对象格式化字符
__hash__() 对象的哈希值
__bool__() 对象布尔值
__dir__() 对象的属性和方法列表
__length_hint__() 对象长度估计值
__missing__() 处理字典缺失键
__match_args__ 支持结构化模式匹配
"""
标签:__,特殊,obj,运算,python,含义,运算符,other,self
From: https://blog.csdn.net/m0_61566562/article/details/140229891