其他魔术方法

141 阅读1分钟

1.容器相关的魔术方法

__len__:获取容器的长度

__iter__:返回迭代器本身

__next__:访问获取对象的下一个元素

__reversed__:返回反转后的序列,仅当序列有序时可以使用

__missing__:定义了字典中key不存在时的行为

__getitem__:定义了通过key访问字典中的value时的行为

__setitem__:定义了给字典的key赋值时的行为

__delitem__:定义了删除字典中的元素时的行为

__contains__:定义了使用in和not in测试成员是否存在时的行为

2.反射相关的魔术方法

__isinstancecheck__:检查一个实例是否为所定义的类的实例

__subclasscheck__:检查一个类是不是所定义的类的子类

3.上下文管理器相关的魔术方法

__enter__:定义了进入上下文管理器时的行为

__exit__:定义了退出上下文管理器时的行为

4.复制操作相关的魔术方法

__copy__:定义了copy.copy()q浅拷贝时的行为

__deepcopy__:定义了copy.deepcopy()深拷贝时的行为

5.类型转换相关的魔术方法

__int__:定义了int()函数的行为

__float__:定义了float()函数的行为

__complex__:定义了complex()函数的行为

__oct__:定义了oct()函数的行为

__hex__:定义了hex()函数的行为

6.其他的魔术方法

__repr__:输出对象内容以及对象的数据类型信息,面向解释器,追求准确性

__str__:输出可读性良好的字符串格式的对象,主要面向用户,追求可读性

__getitem__:用于自定义容器类型,定义当某一项被访问时,使用 self[key] 所产生的行为

__setitem__:用于自定义容器类型,定义执行 self[key]=value 时产生的行为

__delitem__:用于自定义容器类型,定义一个项目被删除时的行为