Это потому, что foo = list
делает foo
псевдонимом для типа list
. Фактический list
объект не был создан в этой строке. Однако, если у вас есть объект list
, вы можете использовать list.append()
(или foo.append()
) для добавления к нему.
Вроде так:
foo = list
bar = [1]
list.append(bar, 2)
# bar is now [1, 2]
foo.append(bar, 3)
# bar is now [1, 2, 3]
Поскольку ваш пример кода вызывает foo.append()
только с одним аргументом (int), исключение жалуется, что ему нужно list
, а не int
.
Примечание: Это не особенность класса списка. Все методы экземпляра могут быть вызваны в обеих формах: some_object.func(a, b, c)
или SomeType.func(some_object, a, b, c)