Аналогия: Если Вы создаете автомобили для жизни (программирование), то его очень подходящее, чтобы знать, как механизм работает (Win32).
Вам нужно следующее:
class a:
def __init__(self):
self.list = []
Объявление переменных внутри объявления класса делает их членами "класса", а не членами экземпляра. Объявление их внутри метода __ init __
гарантирует, что новый экземпляр членов создается вместе с каждым новым экземпляром объекта, что и является поведением, которое вы ищете.
Вы объявили «список» как «свойство уровня класса», а не « свойство уровня экземпляра ". Чтобы свойства ограничивались на уровне экземпляра, вам необходимо инициализировать их, ссылаясь на параметр «self» в методе __ init __
(или где-либо еще в зависимости от ситуации).
Вы этого не делаете. строго необходимо инициализировать свойства экземпляра в методе __ init __
, но это упрощает понимание.
Да, вы должны объявить в «конструкторе», если хотите, чтобы список стал свойством объекта, а не свойством класса.