Porque o Python tem esse comportamento?
def arg(my_list=[]):
my_list.append(1)
return my_list
print(arg())
print(arg())
print(arg())
Nó s temos uma função que recebe como parâmetro um array vazio, se chamarmos essa função três vezes print(arg()) print(arg()) print(arg())
Eu achava que o retorno seria
[1]
[1]
[1]
Já que o my_list é iniciado sempre como vazio. Mas o Python retorna
[1]
[1, 1]
[1, 1, 1]
Porque temos esse comportamento?