魔术方法的汇总

  1. 参数-用途表格:
函数名参数调用者功能
__new__self
_init__cls
__str__self
__mro__None

转载于:https://www.cnblogs.com/LS1314/p/8504703.html

### Python 中关于类型的常用方法总结 #### 特殊方法魔术方法) 特殊方法是以双下划线 (`__`) 开头和结尾的方法,在 Python 解释器中有特殊的含义,主要用于定义类的行为。以下是常见的特殊方法及其功能: - **`__init__(self, [...])`**: 初始化新创建的对象状态[^1]。 - **`__new__(cls, [...])`**: 创建并返回一个新的对象实例。 - **`__del__(self)`**: 当对象即将被销毁时调用。 - **`__str__(self)`**: 定义当 `str(obj)` 被调用时的字符串表示形式。 - **`__repr__(self)`**: 返回对象的“官方”字符串表示形式,通常可以用来重新构建该对象。 #### 属性访问相关方法 - **`__getattr__(self, name)`**: 当通过点运算符访问不存在的属性时触发[^3]。 - **`__setattr__(self, name, value)`**: 设置属性值时触发。 - **`__getattribute__(self, name)`**: 访问任何属性之前都会先调用此方法。 - **`__dir__(self)`**: 自定义 `dir()` 函数的结果。 #### 运算符重载方法 - **加法操作**: - **`__add__(self, other)`**: 实现加法操作。 - **`__radd__(self, other)`**: 右侧加法操作。 - **比较操作**: - **`__eq__(self, other)`**: 判断两个对象是否相等。 - **`__ne__(self, other)`**: 判断两个对象是否不相等。 - **`__lt__(self, other)`**, **`__le__(self, other)`**, **`__gt__(self, other)`**, **`__ge__(self, other)`**: 小于、小于等于、大于、大于等于判断。 #### 数字类型转换方法 对于数值类型的数据处理,Python 提供了一些内置函数来完成不同进制之间的转换: - 使用 `bin(x)` 将整数转换为二进制字符串[^2]。 - 使用 `oct(x)` 将整数转换为八进制字符串。 - 使用 `hex(x)` 将整数转换为十六进制字符串。 #### 魔术方法的优势 引入魔术方法增强了 Python 的面向对象特性,使得开发者能够更灵活地控制类行为[^4]。 ```python class ExampleClass: def __init__(self, value): self.value = value def __str__(self): return f"ExampleClass with value {self.value}" def __repr__(self): return f"ExampleClass({self.value})" def __add__(self, other): if isinstance(other, ExampleClass): return ExampleClass(self.value + other.value) raise TypeError("Unsupported operand type") obj1 = ExampleClass(10) obj2 = ExampleClass(20) print(obj1) # 输出自定义的字符串表示形式 print(repr(obj1)) # 输出正式的字符串表示形式 result = obj1 + obj2 # 加法操作 print(result.value) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值