Я думаю, это то, что вы ищете.Класс Bucket, который содержит несколько экземпляров класса MyObject.Поскольку вы не указываете какие-либо особенности вашего объекта-контейнера, я буду использовать простой словарь.
from itertools import count
class MyObject(object):
id=count(0)
def __init__(self):
self.ID=next(self.id)
self.dat=[]
class Bucket(object):
def __init__(self):
self.contained_objects={}
def add_object(myobject):
self.contained_objects[myobject.ID]=myobject.dat
Если вы хотите по некоторым причинам обернуть коллекцию в какой-то другой объект, вы просто определяете WrapperContainer класс вне класса Bucket и просто создание экземпляра экземпляра WrapperContainer внутри него.
from itertools import count
class MyObject(object):
id=count(0)
def __init__(self):
self.ID=next(self.id)
self.dat=[]
class WrapperContainer(object):
def __init__(self):
self.collection = {}
def add_object(my_object):
self.collection[myobject.ID]=myobject.dat
def do_whatever_you_want():
pass
class Bucket(object):
def __init__(self):
self.container_object= WrapperContainer() #a specific instance
def add_object(myobject):
self.container_object.add_object(my_object)
Наконец, вы можете думать о своем классе контейнера как о подклассеуже существующая коллекция (список или словарь или что-то еще), чтобы наследовать его функции.