Как я могу заставить методы подкласса числового класса Python возвращать экземпляры подкласса?Python

Программы на Python
Ответить
Anonymous
 Как я могу заставить методы подкласса числового класса Python возвращать экземпляры подкласса?

Сообщение Anonymous »

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

Код: Выделить всё

>>> from fractions import Fraction
>>> class F(Fraction): pass
...
>>> x = F(1)
>>> x
F(1, 1)
>>> y = F(2)
>>> y
F(2, 1)
>>> x + y
Fraction(3, 1)
Итак, похоже, мне придется перегрузить большинство операторов для операций с экземплярами моего класса, чтобы вернуть экземпляры моего класса. Это несколько противоречит цели создания подклассов.
Это предполагаемое поведение? Есть ли способ обойти проблему?
Этот вопрос не относится только к Fraction. Думаю, то же самое происходит со всеми числовыми классами, а может и не только.

Соответствующие вопросы и обсуждения:

Подробнее здесь: https://stackoverflow.com/questions/799 ... stances-of
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»