1 Python 特殊方法基础 #
mindmap
id1[Python 特殊方法基础]
id1-1[特殊方法概述]
id1-2[特殊方法的概念与命名约定]
id1-3[双下划线方法的作用机制]
id1-4[特殊方法与内置函数的关系]
id1-5[特殊方法的调用方式]
id1-6[对象生命周期方法]
id1-7[`__new__` 方法:对象创建]
id1-8[`__init__` 方法:对象初始化]
id1-9[`__del__` 方法:对象销毁]
id1-10[构造与析构的执行顺序]
id1-11[对象表示方法]
id1-12[`__str__` 方法:用户友好字符串表示]
id1-13[`__repr__` 方法:开发者友好字符串表示]
id1-14[`__format__` 方法:格式化输出]
id1-15[`__bytes__` 方法:字节表示]
特殊方法概述
特殊方法的概念与命名约定
双下划线方法的作用机制
特殊方法与内置函数的关系
特殊方法的调用方式
对象生命周期方法
`__new__` 方法:对象创建
`__init__` 方法:对象初始化
`__del__` 方法:对象销毁
构造与析构的执行顺序
对象表示方法
`__str__` 方法:用户友好字符串表示
`__repr__` 方法:开发者友好字符串表示
`__format__` 方法:格式化输出
`__bytes__` 方法:字节表示
2 比较运算符重载 #
基本比较运算符
`__eq__` 方法:等于运算符 ==
`__ne__` 方法:不等于运算符 !=
`__lt__` 方法:小于运算符 <
`__le__` 方法:小于等于运算符 <=
`__gt__` 方法:大于运算符 >
`__ge__` 方法:大于等于运算符 >=
比较运算的实现技巧
使用 `functools.total_ordering` 装饰器
比较运算的对称性处理
哈希一致性要求
比较运算的性能优化
哈希与相等性
`__hash__` 方法的作用
哈希值与相等性的关系
不可变对象的哈希实现
自定义类的哈希策略
mindmap
id2[比较运算符重载]
id2-1[基本比较运算符]
id2-2[`__eq__` 方法:等于运算符 ==]
id2-3[`__ne__` 方法:不等于运算符 !=]
id2-4[`__lt__` 方法:小于运算符 <]
id2-5[`__le__` 方法:小于等于运算符 <=]
id2-6[`__gt__` 方法:大于运算符 >]
id2-7[`__ge__` 方法:大于等于运算符 >=]
id2-8[比较运算的实现技巧]
id2-9[使用 `functools.total_ordering` 装饰器]
id2-10[比较运算的对称性处理]
id2-11[哈希一致性要求]
id2-12[比较运算的性能优化]
id2-13[哈希与相等性]
id2-14[`__hash__` 方法的作用]
id2-15[哈希值与相等性的关系]
id2-16[不可变对象的哈希实现]
id2-17[自定义类的哈希策略]
3 算术运算符重载 #
mindmap
id3[算术运算符重载]
id3-1[基本算术运算符]
id3-2[`__add__` 方法:加法运算符 +]
id3-3[`__sub__` 方法:减法运算符 -]
id3-4[`__mul__` 方法:乘法运算符 *]
id3-5[`__truediv__` 方法:真除法运算符 /]
id3-6[`__floordiv__` 方法:地板除运算符 //]
id3-7[`__mod__` 方法:取模运算符 %]
id3-8[进阶算术运算符]
id3-9[`__pow__` 方法:幂运算符 **]
id3-10[`__matmul__` 方法:矩阵乘法运算符 @]
id3-11[`__divmod__` 方法:divmod函数支持]
id3-12[`__abs__` 方法:绝对值函数支持]
id3-13[反向算术运算]
id3-14[`__radd__`、`__rsub__` 等反向方法]
id3-15[交换律运算的实现]
id3-16[类型兼容性处理]
id3-17[反向运算的应用场景]
id3-18[原地算术运算]
id3-19[`__iadd__` 方法:原地加法 +=]
id3-20[`__isub__` 方法:原地减法 -=]
id3-21[`__imul__` 方法:原地乘法 *=]
id3-22[原地运算与普通运算的区别]
基本算术运算符
`__add__` 方法:加法运算符 +
`__sub__` 方法:减法运算符 -
`__mul__` 方法:乘法运算符 *
`__truediv__` 方法:真除法运算符 /
`__floordiv__` 方法:地板除运算符 //
`__mod__` 方法:取模运算符 %
进阶算术运算符
`__pow__` 方法:幂运算符 **
`__matmul__` 方法:矩阵乘法运算符 @
`__divmod__` 方法:divmod函数支持
`__abs__` 方法:绝对值函数支持
反向算术运算
`__radd__`、`__rsub__` 等反向方法
交换律运算的实现
类型兼容性处理
反向运算的应用场景
原地算术运算
`__iadd__` 方法:原地加法 +=
`__isub__` 方法:原地减法 -=
`__imul__` 方法:原地乘法 *=
原地运算与普通运算的区别
4 位运算符重载 #
基本位运算符
`__and__` 方法:按位与运算符 &
`__or__` 方法:按位或运算符 |
`__xor__` 方法:按位异或运算符 ^
`__invert__` 方法:按位取反运算符 ~
位移运算符
`__lshift__` 方法:左移运算符 <<
`__rshift__` 方法:右移运算符 >>
位移运算的边界处理
大整数位移的实现
位运算的反向与原地版本
反向位运算方法
原地位运算方法
位运算的性能考虑
位运算在数据结构中的应用
mindmap
id4[位运算符重载]
id4-1[基本位运算符]
id4-2[`__and__` 方法:按位与运算符 &]
id4-3[`__or__` 方法:按位或运算符 |]
id4-4[`__xor__` 方法:按位异或运算符 ^]
id4-5[`__invert__` 方法:按位取反运算符 ~]
id4-6[位移运算符]
id4-7[`__lshift__` 方法:左移运算符 <<]
id4-8[`__rshift__` 方法:右移运算符 >>]
id4-9[位移运算的边界处理]
id4-10[大整数位移的实现]
id4-11[位运算的反向与原地版本]
id4-12[反向位运算方法]
id4-13[原地位运算方法]
id4-14[位运算的性能考虑]
id4-15[位运算在数据结构中的应用]
5 类型转换方法 #
mindmap
id5[类型转换方法]
id5-1[数值类型转换]
id5-2[`__int__` 方法:转换为整数]
id5-3[`__float__` 方法:转换为浮点数]
id5-4[`__complex__` 方法:转换为复数]
id5-5[`__bool__` 方法:布尔值转换]
id5-6[容器类型转换]
id5-7[`__str__` 与 `__repr__` 的深入应用]
id5-8[`__bytes__` 方法的实现细节]
id5-9[`__format__` 方法的格式化规范]
id5-10[自定义格式化字符串]
id5-11[索引与切片转换]
id5-12[`__index__` 方法:索引转换]
id5-13[切片对象的处理]
id5-14[索引越界的处理策略]
id5-15[负索引的支持]
数值类型转换
`__int__` 方法:转换为整数
`__float__` 方法:转换为浮点数
`__complex__` 方法:转换为复数
`__bool__` 方法:布尔值转换
容器类型转换
`__str__` 与 `__repr__` 的深入应用
`__bytes__` 方法的实现细节
`__format__` 方法的格式化规范
自定义格式化字符串
索引与切片转换
`__index__` 方法:索引转换
切片对象的处理
索引越界的处理策略
负索引的支持
6 容器类型方法 #
序列类型方法
`__len__` 方法:长度获取
`__getitem__` 方法:元素访问
`__setitem__` 方法:元素赋值
`__delitem__` 方法:元素删除
迭代器协议
`__iter__` 方法:迭代器获取
`__next__` 方法:下一个元素
迭代器状态管理
可迭代对象与迭代器的区别
容器操作
`__contains__` 方法:成员测试 in
`__reversed__` 方法:反向迭代
容器性能优化技巧
自定义容器的设计模式
mindmap
id6[容器类型方法]
id6-1[序列类型方法]
id6-2[`__len__` 方法:长度获取]
id6-3[`__getitem__` 方法:元素访问]
id6-4[`__setitem__` 方法:元素赋值]
id6-5[`__delitem__` 方法:元素删除]
id6-6[迭代器协议]
id6-7[`__iter__` 方法:迭代器获取]
id6-8[`__next__` 方法:下一个元素]
id6-9[迭代器状态管理]
id6-10[可迭代对象与迭代器的区别]
id6-11[容器操作]
id6-12[`__contains__` 方法:成员测试 in]
id6-13[`__reversed__` 方法:反向迭代]
id6-14[容器性能优化技巧]
id6-15[自定义容器的设计模式]
7 属性访问方法 #
mindmap
id7[属性访问方法]
id7-1[基本属性访问]
id7-2[`__getattr__` 方法:属性获取]
id7-3[`__getattribute__` 方法:属性访问拦截]
id7-4[`__setattr__` 方法:属性设置]
id7-5[`__delattr__` 方法:属性删除]
id7-6[描述符协议]
id7-7[`__get__` 方法:描述符获取]
id7-8[`__set__` 方法:描述符设置]
id7-9[`__delete__` 方法:描述符删除]
id7-10[描述符的应用场景]
id7-11[属性管理高级技巧]
id7-12[属性访问的性能考虑]
id7-13[动态属性创建]
id7-14[属性访问的权限控制]
id7-15[属性访问的日志记录]
基本属性访问
`__getattr__` 方法:属性获取
`__getattribute__` 方法:属性访问拦截
`__setattr__` 方法:属性设置
`__delattr__` 方法:属性删除
描述符协议
`__get__` 方法:描述符获取
`__set__` 方法:描述符设置
`__delete__` 方法:描述符删除
描述符的应用场景
属性管理高级技巧
属性访问的性能考虑
动态属性创建
属性访问的权限控制
属性访问的日志记录
8 调用与上下文管理 #
可调用对象
`__call__` 方法:对象调用
函数对象的模拟
可调用对象的应用
装饰器类的实现
上下文管理器
`__enter__` 方法:进入上下文
`__exit__` 方法:退出上下文
异常处理机制
资源管理的最佳实践
异步上下文管理器
`__aenter__` 方法:异步进入
`__aexit__` 方法:异步退出
异步资源管理
协程中的上下文管理
mindmap
id8[调用与上下文管理]
id8-1[可调用对象]
id8-2[`__call__` 方法:对象调用]
id8-3[函数对象的模拟]
id8-4[可调用对象的应用]
id8-5[装饰器类的实现]
id8-6[上下文管理器]
id8-7[`__enter__` 方法:进入上下文]
id8-8[`__exit__` 方法:退出上下文]
id8-9[异常处理机制]
id8-10[资源管理的最佳实践]
id8-11[异步上下文管理器]
id8-12[`__aenter__` 方法:异步进入]
id8-13[`__aexit__` 方法:异步退出]
id8-14[异步资源管理]
id8-15[协程中的上下文管理]
9 高级特殊方法 #
mindmap
id9[高级特殊方法]
id9-1[类创建与元类方法]
id9-2[`__init_subclass__` 方法:子类初始化]
id9-3[`__class_getitem__` 方法:类泛型支持]
id9-4[`__mro_entries__` 方法:MRO条目处理]
id9-5[元类编程中的特殊方法]
id9-6[协程与异步方法]
id9-7[`__await__` 方法:可等待对象]
id9-8[`__aiter__` 方法:异步迭代器]
id9-9[`__anext__` 方法:异步下一个]
id9-10[异步编程的特殊方法支持]
id9-11[数据模型方法]
id9-12[`__getnewargs_ex__` 方法:pickle支持]
id9-13[`__reduce__` 与 `__reduce_ex__` 方法]
id9-14[`__sizeof__` 方法:对象大小]
id9-15[对象序列化与反序列化]
类创建与元类方法
`__init_subclass__` 方法:子类初始化
`__class_getitem__` 方法:类泛型支持
`__mro_entries__` 方法:MRO条目处理
元类编程中的特殊方法
协程与异步方法
`__await__` 方法:可等待对象
`__aiter__` 方法:异步迭代器
`__anext__` 方法:异步下一个
异步编程的特殊方法支持
数据模型方法
`__getnewargs_ex__` 方法:pickle支持
`__reduce__` 与 `__reduce_ex__` 方法
`__sizeof__` 方法:对象大小
对象序列化与反序列化
10 实际应用与最佳实践 #
设计模式中的特殊方法
策略模式与运算符重载
装饰器模式与 `__call__` 方法
迭代器模式与容器方法
状态模式与属性访问
性能优化技巧
特殊方法的性能影响
惰性计算与属性访问
缓存机制与哈希方法
内存管理与对象池
测试与调试
特殊方法的单元测试
运算符重载的边界测试
调试技巧与工具
常见错误与解决方案
最佳实践指南
运算符重载的设计原则
特殊方法的命名规范
代码可读性与维护性
向后兼容性考虑
mindmap
id10[实际应用与最佳实践]
id10-1[设计模式中的特殊方法]
id10-2[策略模式与运算符重载]
id10-3[装饰器模式与 `__call__` 方法]
id10-4[迭代器模式与容器方法]
id10-5[状态模式与属性访问]
id10-6[性能优化技巧]
id10-7[特殊方法的性能影响]
id10-8[惰性计算与属性访问]
id10-9[缓存机制与哈希方法]
id10-10[内存管理与对象池]
id10-11[测试与调试]
id10-12[特殊方法的单元测试]
id10-13[运算符重载的边界测试]
id10-14[调试技巧与工具]
id10-15[常见错误与解决方案]
id10-16[最佳实践指南]
id10-17[运算符重载的设计原则]
id10-18[特殊方法的命名规范]
id10-19[代码可读性与维护性]
id10-20[向后兼容性考虑]