본문 바로가기

Python

Python기본 _ 함수에서 디폴트 변수 선언할 때 주의점

 이번 시간에서는 파이썬에서 함수를 만들때 변수의 디폴트 인자를 사용할때의 주의점을 소개한다. 파이썬의 경우 함수 변수에 정수나 실수 혹은 문자열의 경우 디폴트 인자로 써서 함수를 여러번 실행할 경우 그것을 인식하지만, 리스트의 경우 참조주소로 지정이 되기 때문에 디폴트로 인식을 한다 해도 함수를 여러번 사용할 경우 디폴트 인자로 사용되지 않는다.

따라서 리스트의 경우 디폴트 인자를 사용할 때는 다음과 같이 설정하여 함수를 만들 수 있다.

 

  def test_func(x, l=None):

    if l is None:
        l = [] # l이 None일 경우 새로운 리스트를 함수 내에서 생성한다
    l.append(x)
    return l

r = test_func(100)

print(r)

r = test_func(100)

print(r)