Как работают функции с объектами в Python?

Код который я написал:

def Test(int ,arr = []):   
  arr.append(int);
  print(arr);

Test(1);
Test(2);
Test(3);

Ожидаю увидеть

[1]
[2]
[3]

В действительности получаю

[1]
[1, 2]
[1, 2, 3]

Почему массив, который работает с разными функциями, имеет общую память? Как я могу заставить код делать то что мне нужно?


Ответы (1 шт):

Автор решения: S. Nick

Попробуйте так:

#def Test(int ,arr = []):   
def test(int ,arr = None):  
    if not arr:
        arr = []
    arr.append(int);
    print(arr);

test(1);
test(2);
test(3);

test(5, ['Hello World',])
→ Ссылка