Python类的特殊方法

Python类中的特殊方法(也称为魔术方法或双下划线方法)用于定义类的行为,可以在特定的操作或事件发生时自动调用。以下是一些常见的特殊方法:

1.对象创建和销毁

__new__(cls, ...): 创建对象时调用,返回一个新的实例。
__init__(self, ...): 对象初始化时调用,用于设置对象的初始状态。
__del__(self): 对象被销毁时调用,进行资源清理操作。

2.字符串表示和格式化

__str__(self): 将对象转换为字符串的方法,通过str(obj)print(obj)调用。
__repr__(self): 将对象转换为供开发者阅读的字符串的方法,通过repr(obj)调用。
__format__(self, format_spec): 格式化对象的方法,通过format(obj, format_spec)调用。

3.属性访问和设置

__getattr__(self, name): 获取不存在的属性时调用。
__setattr__(self, name, value): 设置属性值时调用。
__delattr__(self, name): 删除属性时调用。
__getattribute__(self, name): 获取属性时调用,无论属性是否存在。

4.容器类型操作

__len__(self): 返回对象的长度,通过len(obj)调用。
__getitem__(self, key): 获取对象的索引值或键值对应的值,通过obj[key]调用。
__setitem__(self, key, value): 设置对象的索引值或键值对应的值,通过obj[key] = value调用。
__delitem__(self, key): 删除对象的索引值或键值对应的值,通过del obj[key]调用。
__iter__(self): 返回一个迭代器对象,通过iter(obj)调用。
__next__(self): 在迭代器中返回下一个元素,通过next(obj)调用。
__contains__(self, item): 检查对象是否包含某个元素,通过item in obj调用。

5.函数调用和可调用对象

__call__(self, ...): 将对象作为函数调用,通过obj()调用。

6.比较和排序

__eq__(self, other): 比较对象是否相等,通过obj == other调用。
__ne__(self, other): 比较对象是否不相等,通过obj != other调用。
__lt__(self, other): 比较对象是否小于,通过obj < other调用。
__gt__(self, other): 比较对象是否大于,通过obj > other调用。
__le__(self, other): 比较对象是否小于等于,通过obj <= other调用。
__ge__(self, other): 比较对象是否大于等于,通过obj >= other调用。

7.数值运算

__add__(self, other): 加法运算,通过obj + other调用。
__sub__(self, other): 减法运算,通过obj - other调用。
__mul__(self, other): 乘法运算,通过obj * other调用。
__truediv__(self, other): 真除法运算,通过obj / other调用。
__floordiv__(self, other): 整除法运算,通过obj // other调用。
__mod__(self, other): 取模运算,通过obj % other调用。
__pow__(self, other): 幂运算,通过obj ** other调用。

8.位运算

__and__(self, other): 位与运算,通过obj & other调用。
__or__(self, other): 位或运算,通过obj | other调用。
__xor__(self, other): 位由于回答的内容过长,无法完整列出所有的特殊方法。
  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值