解释一下python 中__repr__和__int__的用法
时间: 2024-09-18 13:07:37 浏览: 35
在Python中,`__repr__` 和 `__int__` 都是特殊方法(也称为魔术方法),它们在特定情况下控制对象的行为。
1. **`__repr__`**:这个方法用于返回一个代表对象的“官方”字符串表示形式,通常在打印、调试和序列化时使用。当你对一个对象执行 `print()` 或者尝试将它转换成字符串(如 `str()` 或 `repr()` 函数)时,就会调用这个方法。它的作用是生成易于理解的描述信息,而不是计算值。例如:
```python
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __repr__(self):
return "Point({}, {})".format(self.x, self.y)
p = Point(1, 2)
print(p) # 输出: Point(1, 2)
```
2. **`__int__`**:这个方法用于将一个对象强制转换为整数类型。如果对象实现了 `__int__`,那么当你试图将它加到另一个整数或做其他需要数值类型的运算时,会自动调用该方法。如果没有定义,Python 会引发一个错误。例如:
```python
class Fraction:
def __init__(self, numerator, denominator):
self.numerator = numerator
self.denominator = denominator
def __int__(self):
return self.numerator // self.denominator
f = Fraction(4, 2)
print(int(f)) # 输出: 2
```
阅读全文