Код: Выделить всё
__pow__(self, other, modulo=None)
Код: Выделить всё
__rpow__(self, other, modulo=None)
Я обнаружил случай, когда ни один из них не вызывается, и я этого не понимаю. Вот пример случая, который просто возвращает имя вызываемого метода:
Код: Выделить всё
class Power:
def __pow__(self, other, modulo=None):
return '__pow__'
def __rpow__(self, other, modulo=None):
return '__rpow__'
>>> x = Power()
>>> pow(x, 5)
'__pow__'
>>> pow(5, x)
'__rpow__'
Код: Выделить всё
>>> pow(x, x, 5)
'__pow__'
>>> pow(5, x, 5)
Traceback (most recent call last):
File "", line 1, in
TypeError: unsupported operand type(s) for pow(): 'int', 'Power', 'int'
Подробнее здесь: https://stackoverflow.com/questions/556 ... -in-python