В Python границы между делегированием, составом , агрегацией и другими имеют повторений довольно размыто, так как все они имеют общий синтаксис и со сборкой мусора нет никаких забот о собственности. То, что вы назовете, будет зависеть главным образом от того, что вы делаете с объектами, то есть, если MyImageClass.method_A просто вызывает self.img.method_A () и т. Д., Это будет делегирование.
Я почти уверен, что вы видели это раньше, так как каждое значение в Python, включая значения всех атрибутов, является экземпляром некоторого типа.
Если ваш класс является изображением, вы ищете наследство. Ваш класс должен быть подклассом Image
.