super
применяется только к структурам наследования классов, где Sub1
и Sub2
являются подклассами Master
.
В вашем примере вы используете структуру содержания, Sub1
и Sub2
являются атрибутами Master
, и вы не используете super
вызовов.
Кроме того, вы, как правило, действительно не хотите использовать изменяемый список в качестве атрибута класса;добавление к нему изменит одну копию списка (определенного в классе) глобально, а не на экземпляр;вместо этого инициируйте список в методе Master.__init__
:
class Master(object):
mydata = None
def __init__(self):
self.mydata = []
Функция __init__
вызывается для установки нового экземпляра, и, назначив новый пустой список для self
, вы гарантируете, чтокаждый экземпляр имеет свою собственную копию.