Есть ли возможность добавить экземпляр класса Python к целому числу (по умолчанию int
класс). Например, если у меня есть класс с магическими методами:
class IntType:
def __init__(self, value):
self.value = value
def __add__(self, other):
return self.value + other
# Works
print(IntType(10) + 10)
# Doesn't Work
print(10 + IntType(10))
Я не могу добавить свой IntType
во встроенный класс int
. Если я пытаюсь добавить IntType
к целому числу, я получаю следующую ошибку:
Traceback (most recent call last):
File "test.py", line 8, in <module>
print(10 + IntType(10))
TypeError: unsupported operand type(s) for +: 'int' and 'IntType'
Единственный способ заставить это работать - как-то изменить метод int
class '__add__
. Если вам интересно, почему я не просто добавляю int
к IntType
(например, IntType(10) + 10
), это потому, что мне нужно, чтобы это работало для всех операторов, например, для вычитания (где важен порядок). Я использую Python 3.