Наследование пользовательских операторов в Python? - PullRequest
1 голос
/ 22 декабря 2009

Если у меня есть класс A, который определяет __cmp__, и класс B, который расширяет класс A, кажется, что я должен переопределить __cmp__ в классе B. Это правильно?

Есть ли лучший обходной путь, чем реализация метода "cmp" в классе A и вызов его из отдельных реализаций __cmp__ в классе A и классе B?

Спасибо, -Л


ОБНОВЛЕНИЕ: Похоже, проблема в том, что я плохо знаком с Python 3. Насколько я понимаю, __cmp__ больше не должен использоваться: http://docs.python.org/dev/3.0/whatsnew/3.0.html#ordering-comparisons

Вместо этого я заново реализовал свои классы, используя новые операторы сравнения упорядочения: http://docs.python.org/dev/3.0/reference/datamodel.html#object.lt

1 Ответ

1 голос
/ 22 декабря 2009

Предполагая, что у вас есть класс с именем "A", и этот класс имеет определение для __ cmp __.

И давайте предположим, что вы расширяете класс A:

class B(A):

Таким образом, чтобы извлечь __ cmp __ из класса A из класса B, можно использовать:

A.__cmp__ из класса B

Это мое предположение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...