Как я могу заставить методы подкласса числового класса 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

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