Композиция на Python; Можно ли воспроизвести пересылку методов/встраивание структур Go, чтобы минимизировать шаблон?Python

Программы на Python
Anonymous
Композиция на Python; Можно ли воспроизвести пересылку методов/встраивание структур Go, чтобы минимизировать шаблон?

Сообщение Anonymous »

Обычно самым большим препятствием при использовании композиции вместо наследования является большое количество шаблонных методов пересылки, которые необходимо написать для делегирования функциональности компонентам класса:

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

def some_func(self, x):
return self.component.somefunc(x)
Go решает эту проблему, предоставляя методы членов родительского класса, поэтому шаблонный код не требуется. Мне было интересно, возможно ли что-то подобное в Python, учитывая отражающую и динамическую природу системы типов. (Предупреждение: я не использовал Go и далек от эксперта по Python.)
Отвечаю на свой вопрос ниже примером, который, кажется, работает. Я буду рад любым отзывам о том, есть ли у этого метода какие-либо недостатки или есть ли лучшая альтернатива.

Подробнее здесь: https://stackoverflow.com/questions/798 ... rding-stru

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