Итак, у меня есть пользовательский класс, который имеет функцию __mul__
, которая работает с ints. Тем не менее, в моей программе (в библиотеках) это называется другим способом, т.е. 2 * x
, где x
принадлежит моему классу. Есть ли способ, которым я могу использовать эту функцию __mul__
для этого?
Python: переопределение умножения
Ответ 1
Просто добавьте следующее в определение класса, и вам должно быть хорошо:
__rmul__ = __mul__
Ответ 2
Внедрите __rmul__
.
class Foo(object):
def __mul__(self, other):
print '__mul__'
return other
def __rmul__(self, other):
print '__rmul__'
return other
x = Foo()
2 * x # __rmul__
x * 2 # __mul__