Композиция на 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
Ответить

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

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

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

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

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