
226 Chapter 4
사라의 의견 확인
레퍼런스로 전달 기법 시연
톰의 명백한 한 방에도 기죽지 않고 사라는 자리에 앉아 자신의 생각이 옳다는 것을 증명할
준비를 합니다. 다시
IDLE
편집 창이 등장합니다. 이번엔 사라가
change
함수를 실행할
겁니다.
‘
mystery.py
’
모듈입니다.
톰의 함수
사라의 함수
사라가
>>>
프롬프트에 몇 행의 코드를 입력하고는 자신의 의자에 기대앉아 팔짱을
끼고 톰에게 말합니다.
‘
파이썬이 값으로 전달 호출만 지원한다면 이 결과는 어떻게
설명할 수 있을까?
’
톰은 아무 대답도 못합니다.
사라가 쉘에 입력한 명령을 확인해보세요.
>>> numbers = [ 42, 256, 16 ]
>>> change(numbers)
Before: [42, 256, 16]
After: [42, 256, 16, 'More data']
>>> numbers
[42, 256, 16, 'More data']
사라는 톰이 사용했던
것과 똑같은 리스트
데이터를 이용해
자신의
‘
change
’
함수를 호출합니다.
무슨 일이 일어났는지 보세요!
이번에는 함수에서 인잣값을
바꿨더니 쉘의 값도 바뀌었습니다.
이 결과로만 보면 파이썬은
레퍼런스로 전달 호출 기법도
지원하는 것 같네요.
이상한 일이 일어났네요.
톰의 함수는 인자가 값으로 전달됨을, 사라의 함 ...