Когда вы определяете функцию в Python с параметром массива, какова область действия этого параметра?
Этот пример взят из учебника Python:
def f(a, L=[]):
L.append(a)
return L
print f(1)
print f(2)
print f(3)
Печать
[1]
[1, 2]
[1, 2, 3]
Я не совсем уверен, понимаю ли я, что происходит здесь. Означает ли это, что масштаб массива находится вне функции? Почему массив запоминает свои значения из вызова для вызова? Исходя из других языков, я бы ожидал такого поведения, только если переменная была статичной. В противном случае кажется, что он должен быть reset каждый раз. И на самом деле, когда я попробовал следующее:
def f(a):
L = []
L.append(a)
return L
Я получил ожидаемое поведение (массив был reset для каждого вызова).
Итак, мне кажется, что мне просто нужна строка def f(a, L=[]):
- какова область действия переменной L
?