Сохраняются значения переменной python после выхода из функции (метода), почему?
class Any:
@staticmethod
def locations(l=list()):
l.append({'h': 1})
return l
c = Any()
for i in range(0, 5):
print(c.locations())
вот в таком коде после каждого вызова метода locations() переменная l сохраняет своё значение. расскажите, пожалуйста, почему это происходит и что сделать, чтобы такого не случалось?
list() менял на [], не помогает.
P.S. в ответе скрипта получаю:
[{'h': 1}]
[{'h': 1}, {'h': 1}]
[{'h': 1}, {'h': 1}, {'h': 1}]
[{'h': 1}, {'h': 1}, {'h': 1}, {'h': 1}]
[{'h': 1}, {'h': 1}, {'h': 1}, {'h': 1}, {'h': 1}]