Мне нужно переопределить поведение каретки в классе, но я не уверен, какая операционная перегрузка применима к нему. Например:Как вы перегружаете оператор каретки (^) в python
class A:
def __init__(self, f):
self.f = f
def __caret__(self, other):
return self.f^other.f
print A(1)^A(2)
Этот код ошибки с:
TypeError: unsupported operand type(s) for ^: 'instance' and 'instance'
Как я могу построить класс, так что я могу контролировать поведение?
RTFD http://docs.python.org/reference/datamodel.html#emulating-numeric-types –
Я вижу, что вы используете Python 2. Вы должны всегда использовать 'класса A (объект): 'вместо' class A: '. Старые классы никогда не должны использоваться. –
Почему это? Каковы недостатки не наследования объекта? – ninhenzo64