2013-12-03 1 views
1

Как изменить символ + (кнопка на клавиатуре) в python для управления вашим пользовательским def, а не добавлением по умолчанию?Изменить символ + для управления чем-то еще?

+2

Из интереса, что вы намерены использовать для символа +? – OGHaza

+0

нечеткая арифметика, например. 5 + 2 >> 7, но в нечеткой арифметике есть 7 с функцией, следующей за номером 7. –

+0

Как никто, похоже, не упомянул об этом, то, что вы хотите сделать, называется перегрузкой оператора [и это хорошая ссылка] (http: //rgruet.free.fr/PQR26/PQR2.6.html#SpecialMethods), чтобы узнать, какие операторы вы можете перегрузить. –

ответ

2

Числовые операции над классами делегированы various methods. Просто выполните их на своем классе, чтобы выполнить требуемую операцию.

class MyClass(object): 
    def __add__(self, other): 
    ... 

Обратите внимание, что вы не можете изменить поведение стандартных операторов, когда операнд или оба операнда являются существующими типами.

3

Вы можете реализовать один или несколько из следующих методов на классе:

  • __add__ - обрабатывает случай, когда у вас есть (your object) + (some other object)
  • __radd__ - обрабатывает случай, когда у вас есть (some other object) + (your object), а другой объект Безразлично Не знаю, как это сделать.
  • __iadd__ - ручки (your object) += (some object). Вы не обязательно должны это реализовать, поскольку Python будет звонить __add__, если вы этого не сделаете.

Существуют соответствующие «магические» методы для других операций, математических и иных, see here.

 Смежные вопросы

  • Нет связанных вопросов^_^