0
필자는 파이썬 인터프리터를 열고 코드를 작성하고 다음 함수를 실행했습니다.왜 함수가 더 긴 목록을 반환합니까?
>>> def crazy_function(my_list=[]):
... my_list.append(0)
... return my_list
...
>>> crazy_function()
[0]
>>> crazy_function()
[0, 0]
>>> crazy_function()
[0, 0, 0]
>>> crazy_function()
[0, 0, 0, 0]
>>> crazy_function()
[0, 0, 0, 0, 0]
>>> crazy_function()
[0, 0, 0, 0, 0, 0]
>>> crazy_function()
[0, 0, 0, 0, 0, 0, 0]
>>>
무슨 일입니까? 왜 함수를 호출할수록 함수에 의해 리턴 된리스트는 점점 길어지는 걸까요? 함수가 호출 될 때마다 새 로컬 목록을 만들어야하지 않습니까?
파이썬 개시 : D – dangerChihuahua007
이 많이 요구됩니다 - [파이썬에서 "최소 깜짝": 변경이 용이 한 기본 인수] 참조 (http://stackoverflow.com/questions/1132941/least-astonishment-in-python를 -the-mutable-default-argument) –
이 질문들은 항상 닫힙니다. * SO FAST *. 인상적이다. – mgilson