LINUX.ORG.RU

[python] Наследование? Объединение классов?

 


0

0

Есть модуль, который по сути обертка к C-шной библиотеке.
В этом модуле есть классы A и B.
Объект класса A создает объекты класса B.

Вопрос, можно ли изменить класс B?
Не просто сделать новый класс у которого родительским будет класс B, а изменить сам класс, чтобы A стал создавать объекты измененного класса.
Надо добавить новые методы и дополнить __init__.

★★★★★

Почитай про паттер AbstractFactory

dizza ★★★★★
()

> Вопрос, можно ли изменить класс B? Да, через monkey-patching. Но лучше этого не делать.

ntp
()
Ответ на: комментарий от arhibot

> B.__init__ = new.instancemethod(new_init,None,B)

Нахрена так сложно? B.__init__ = new_init и все. Да и модуль new deprecated.

ntp
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.