Python 3.2文档的数据模型部分对__int__
和__index__
方法提供以下描述:
object.__int__(self)
调用内置函数[
int()
]。 应该返回一个整数。
object.__index__(self)
实现
operator.index()
,同时也在Python需要整数对象时(例如在切片中,或在内置的bin()
、hex()
和oct()
函数中)被调用。 必须返回一个整数。
我知道它们用于不同的目的,但我无法弄清楚为什么需要两种不同的方法。 这两种方法之间有什么区别? 在我的类中,将__index__ = __int__
视为别名是否安全?
__int__
。 - Mad Physicist