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