>source
def foo(a=[0]):
   a[0]+=1
   return a[0]
x=foo()
y=foo()
print(f'{x}{y}')

--->출력은 12이지만 그 이유는 무엇입니까?

def foo(a=[0]):
    a[0]+=1
    return a
x=foo()
y=foo()
print(f'{x}{y}')

->출력은 [2] [2]이지만 그 이유는 무엇입니까?


  • 답변 # 1

    첫 번째 경우, 목록의 첫 번째 요소에 1을 추가하면 처음에는 0입니다. 함수를 호출 할 때마다 값이 1 씩 증가합니다. 따라서 x의 값은 1이고 y는 2입니다. 그리고 인쇄하면 12가됩니다. 두 번째 경우에는 목록을 반환하는 것입니다. 따라서 값 대신 목록을 인쇄했습니다.

  • 이전 button - 자바 스크립트 onclick이 휴대 기기에서 작동하지 않습니다
  • 다음 java - 기계적 인조 인간 - 파일 만들기는 android 5 이상에서는 작동하지만 android 6 이상에서는 작동하지 않습니다