Сохраняются значения переменной 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}]

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