【干货】Python的魔数方法一览表 | Python 主题月

简介: 【干货】Python的魔数方法一览表 | Python 主题月

基本的魔法方法


名称 解释
_new_(cls[, ...]) 在一个对象实例化的时候所调用的第一个方法
_init_(self[, ...]) 构造器,当一个实例被创建的时候调用的初始化方法
_del_(self) 析构器,当一个实例被销毁的时候调用的方法
_call_(self[, args...]) 允许一个类的实例像函数一样被调用:x(a, b) 调用 x.call(a, b)
_len_(self) 定义当被 len() 调用时的行为
_repr_(self) 定义当被 repr() 调用时的行为
_str_(self) 定义当被 str() 调用时的行为
_bytes_(self) 定义当被 bytes() 调用时的行为
_hash_(self) 定义当被 hash() 调用时的行为
_bool_(self) 定义当被 bool() 调用时的行为,应该返回 True 或 False
_format_(self, format_spec) 定义当被 format() 调用时的行为


有关属性


名称 解释
_getattr_(self, name) 定义当用户试图获取一个不存在的属性时的行为
_getattribute_(self, name) 定义当该类的属性被访问时的行为
_setattr_(self, name, value) 定义当一个属性被设置时的行为
_delattr_(self, name) 定义当一个属性被删除时的行为
_dir_(self) 定义当 dir() 被调用时的行为
_get_(self, instance, owner) 定义当描述符的值被取得时的行为
_set_(self, instance, value) 定义当描述符的值被改变时的行为
_delete_(self, instance) 定义当描述符的值被删除时的行为


比较操作符


名称 解释
_lt_(self, other) 定义小于号的行为:x < y 调用 x.lt(y)
_le_(self, other) 定义小于等于号的行为:x <= y 调用 x.le(y)
_eq_(self, other) 定义等于号的行为:x == y 调用 x.eq(y)
_ne_(self, other) 定义不等号的行为:x != y 调用 x.ne(y)
_gt_(self, other) 定义大于号的行为:x > y 调用 x.gt(y)
_ge_(self, other) 定义大于等于号的行为:x >= y 调用 x.ge(y)


|算数运算符



名称 解释
_add_(self, other) 定义加法的行为:+
_sub_(self, other) 定义减法的行为:-
_mul_(self, other) 定义乘法的行为:*
_truediv_(self, other) 定义真除法的行为:/
_floordiv_(self, other) 定义整数除法的行为://
_mod_(self, other) 定义取模算法的行为:%
_divmod_(self, other) 定义当被 divmod() 调用时的行为
_pow_(self, other[, modulo]) 定义当被 power() 调用或 ** 运算时的行为
_lshift_(self, other) 定义按位左移位的行为:<<
_rshift_(self, other) 定义按位右移位的行为:>>
_and_(self, other) 定义按位与操作的行为:&
_xor_(self, other) 定义按位异或操作的行为:^
_or_(self, other) 定义按位或操作的行为:


反运算


名称 解释
_radd_(self, other) (与上方相同,当左操作数不支持相应的操作时被调用)
_rsub_(self, other) (与上方相同,当左操作数不支持相应的操作时被调用)
_rmul_(self, other) (与上方相同,当左操作数不支持相应的操作时被调用)
_rtruediv_(self, other) (与上方相同,当左操作数不支持相应的操作时被调用)
_rfloordiv_(self, other) (与上方相同,当左操作数不支持相应的操作时被调用)
_rmod_(self, other) (与上方相同,当左操作数不支持相应的操作时被调用)
_rdivmod_(self, other) (与上方相同,当左操作数不支持相应的操作时被调用)
_rpow_(self, other) (与上方相同,当左操作数不支持相应的操作时被调用)
_rlshift_(self, other) (与上方相同,当左操作数不支持相应的操作时被调用)
_rrshift_(self, other) (与上方相同,当左操作数不支持相应的操作时被调用)
_rand_(self, other) (与上方相同,当左操作数不支持相应的操作时被调用)
_rxor_(self, other) (与上方相同,当左操作数不支持相应的操作时被调用)
_ror_(self, other) (与上方相同,当左操作数不支持相应的操作时被调用)


增量赋值运算


名称 解释
_iadd_(self, other) 定义赋值加法的行为:+=
_isub_(self, other) 定义赋值减法的行为:-=
_imul_(self, other) 定义赋值乘法的行为:*=
_itruediv_(self, other) 定义赋值真除法的行为:/=
_ifloordiv_(self, other) 定义赋值整数除法的行为://=
_imod_(self, other) 定义赋值取模算法的行为:%=
_ipow_(self, other[, modulo]) 定义赋值幂运算的行为:**=
_ilshift_(self, other) 定义赋值按位左移位的行为:<<=
_irshift_(self, other) 定义赋值按位右移位的行为:>>=
_iand_(self, other) 定义赋值按位与操作的行为:&=
_ixor_(self, other) 定义赋值按位异或操作的行为:^=
_ior_(self, other) 定义赋值按位或操作的行为:


一元操作符


名称 解释
_pos_(self) 定义正号的行为:+x
_neg_(self) 定义负号的行为:-x
_abs_(self) 定义当被 abs() 调用时的行为
_invert_(self) 定义按位求反的行为:~x


类型转换


名称 解释
_complex_(self) 定义当被 complex() 调用时的行为(需要返回恰当的值)
_int_(self) 定义当被 int() 调用时的行为(需要返回恰当的值)
_float_(self) 定义当被 float() 调用时的行为(需要返回恰当的值)
_round_(self[, n]) 定义当被 round() 调用时的行为(需要返回恰当的值)
_index_(self) 1. 当对象是被应用在切片表达式中时,实现整形强制转换 2. 如果你定义了一个可能在切片时用到的定制的数值型,你应该定义 index 3. 如果 index 被定义,则 int 也需要被定义,且返回相同的值


上下文管理(with 语句)


名称 解释
_enter_(self) 1. 定义当使用 with 语句时的初始化行为 2. enter 的返回值被 with 语句的目标或者 as 后的名字绑定
_exit_(self, exc_type, exc_value, traceback) 1. 定义当一个代码块被执行或者终止后上下文管理器应该做什么 2. 一般被用来处理异常,清除工作或者做一些代码块执行完毕之后的日常工作


容器类型


名称 解释
_len_(self) 定义当被 len() 调用时的行为(返回容器中元素的个数)
_getitem_(self, key) 定义获取容器中指定元素的行为,相当于 self[key]
_setitem_(self, key, value) 定义设置容器中指定元素的行为,相当于 self[key] = value
_delitem_(self, key) 定义删除容器中指定元素的行为,相当于 del self[key]
_iter_(self) 定义当迭代容器中的元素的行为
_reversed_(self) 定义当被 reversed() 调用时的行为
_contains_(self, item) 定义当使用成员测试运算符(in 或 not in)时的行为
相关文章
|
14天前
|
Python
python魔法方法如何应用
【4月更文挑战第12天】这个Python示例展示了类继承和方法重写。`Student`类继承自`Person`,并覆盖了`say_hello`方法。通过`super().__init__(name)`调用父类的`__init__`初始化`name`属性,`Student`添加了`age`属性,并在重写的`say_hello`中使用。创建`Student`实例`student`并调用其`say_hello`,输出定制的问候信息。
20 1
|
3天前
|
人工智能 Python
【Python实用技能】建议收藏:自动化实现网页内容转PDF并保存的方法探索(含代码,亲测可用)
【Python实用技能】建议收藏:自动化实现网页内容转PDF并保存的方法探索(含代码,亲测可用)
21 0
|
8天前
|
存储 关系型数据库 MySQL
Python搭建代理IP池实现存储IP的方法
Python搭建代理IP池实现存储IP的方法
|
8天前
|
Python
Python动态IP代理防止被封的方法
Python动态IP代理防止被封的方法
|
8天前
|
数据采集 存储 安全
python检测代理ip是否可用的方法
python检测代理ip是否可用的方法
|
9天前
|
数据可视化 测试技术 Python
在Python和R中使用交叉验证方法提高模型性能
在Python和R中使用交叉验证方法提高模型性能
20 0
|
10天前
|
存储 监控 开发工具
对象存储OSS产品常见问题之python sdk中的append_object方法支持追加上传xls文件如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
45 9
|
10天前
|
Python
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)(上)
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)(上)
52 0
|
15天前
|
机器学习/深度学习 人工智能 算法
|
15天前
|
安全 Python
python字典的内置方法
Python字典主要方法包括:`keys()`(返回所有键)、`values()`(返回所有值)、`items()`(返回所有键值对)、`get()`(安全取值,键不存在时返回默认值)、`setdefault()`(设置默认值)、`update()`(合并字典)、`pop()`(删除并返回值)、`clear()`(清空字典)、`copy()`(浅拷贝)、`fromkeys()`(新建字典并设置默认值)、`popitem()`(随机删除键值对)。
8 0