__init__和_int__的区别
时间: 2024-09-29 21:05:18 浏览: 39
__init__.pyi
在Python中,`__init__` 和 `_int__` 分别是特殊方法(也称为魔术方法),用于特定场景:
1. `__init__(self, ...)`: 这是构造函数,当我们创建一个类的新实例时自动调用。它用于初始化新创建的对象的属性。`self` 参数代表对象本身,后续参数则是你在创建对象时传递的初始值。比如:
```python
class MyClass:
def __init__(self, value):
self.value = value
obj = MyClass(10) # 这里调用了__init__方法
```
2. `_int__(self, ...)`:虽然看起来相似,但实际上 `_int__` 并不是一个内置方法,而是Python中为了兼容序列协议(如支持加法、减法等操作)而引入的一种约定。如果一个类实现了 `_int__`(需要加上两个下划线使其成为私有方法),则当尝试将这个对象转换成整数类型(例如 `str(obj)`, `int(obj)`)时,会调用此方法。这主要用于自定义对象的行为。
注意,如果你误输入了 `__int__` 而不是 `_int__`,因为它们之间仅差了一个下划线,Python解释器可能会认为你要访问的是一个私有属性,而不是调用方法。
阅读全文