object.__int__(self)
Вызывается для реализации встроенной функции [function
int()
]. Должно возвращать [целое число].
object.__index__(self)
Вызывается
operator.index()
. Также вызывается всякий раз, когда Python нуждается в целочисленном объекте (например, при нарезке или во встроенных функцияхbin()
,hex()
иoct()
). Необходимо вернуть целое число.
Я понимаю, что они используются для разных целей, но я не мог понять, почему нужны два разных метода. В чем разница между этими методами? Является ли безопасным только псевдоним __index__ = __int__
в моих классах?