# python中的魔术方法 ### python中的魔术方法 在Python中,魔术方法(Magic methods)也被称为双下划线方法(dunder methods),是以双下划线(__)开头和结尾的特殊方法。它们用于在类定义中实现特定的行为,例如对象创建、属性访问、算术运算等。下面是一些常用的魔术方法及其功能: | 魔术方法 | 作用 | | :----- | :----- | | __init__(self[, ...]) | 构造函数,创建实例时调用 | | __new__(cls[, ...]) | 创建实例时调用 | |__str__(self) |打印对象时调用| |__repr__(self) |返回对象的字符串表示| |__len__(self) |返回对象的长度| |__getitem__(self, key) |获取指定key的值| |__setitem__(self, key, value) |设置指定key的值| |__delitem__(self, key) |删除指定key的值| |__contains__(self, item) |判断item是否在对象中| |__call__(self[, args...]) |将实例作为函数调用| |__getattr__(self, name) |获取对象的属性值| |__setattr__(self, name, value) |设置对象的属性值| |__delattr__(self, name) |删除对象的属性值| |__iter__(self)| 返回迭代器对象| |__next__(self)| 返回迭代器的下一个元素| |__enter__(self)| 进入上下文管理器时调用| |__exit__(self, exc_type, exc_val, exc_tb)| 退出上下文管理器时调用| |__eq__(self, other)| 判断两个对象是否相等| |__lt__(self, other)| 判断一个对象是否小于另一个对象| |__le__(self, other)| 判断一个对象是否小于等于另一个对象| |__gt__(self, other)| 判断一个对象是否大于另一个对象| |__ge__(self, other)| 判断一个对象是否大于等于另一个对象|