파이썬 인수 값은 정확하게 말하자면 참조 혹은 값에 의한 전달이 아니다. 함수가 호출되는 순간의 인수 이름과 값이 연결된 데이터-딕셔너리 엔트리로 전달된다. 함수 내에서 인수로 주어진 변수값은 수정되지 않는다는 의미다.

단, 리스트의 경우 수정이 가능하다.

>>> def set_list_vals(list_arg) :
>>>     list_arg[0] = 100
>>>     list_arg[1] = 200
>>>     list_arg[2] = 300
>>> 
>>> a_list = [0, 0, 0]
>>> set_list_vals(a_list)
>>> print(a_list) # [100, 200, 300]


단, 아래의 경우는 변경되지 않는다.

>>> def set_list_vals(list_arg) :
>>>     list_arg = [100, 200, 300]
>>> 
>>> a_list = [0, 0, 0]
>>> set_list_vals(a_list)
>>> print(a_list) # [0, 0, 0]

- list_arg에 새로운 리스트가 재대입 되면서 기존 list_arg와의 관계가 끊어진 것.

'Python > 공통이론' 카테고리의 다른 글

Python - 대입연산자와 처리속도  (0) 2023.04.10
Python - 다중 리스트  (0) 2023.04.07
Python - 함축  (0) 2023.04.06
Python - 람다함수(일회용 함수)  (0) 2023.04.06
Python - functools  (0) 2023.04.06

+ Recent posts