함수호출시 인자의 main에서의 변수값 변경여부 질의
아래와 같이 테스트를 해보았습니다.
>>> def try1(a):
... a=0
...
>>> def try2(b):
... b[0]=0
...
>>> a=3
>>> b=[3,3,3]
>>> try1(a)
>>> try2(b)
>>> print(a)
3
>>> print(b)
[0, 3, 3]
a는 함수호출이 되어도 변화가 없이 3의 값인데 리스트인 b는 함수호출로 인해 값이 왜 변경되었나요?
yorchoi 님 421
M 2021년 3월 14일 9:51 오전
1개의 답변이 있습니다. 1 / 1 Page
함수에 전달하는 값이 변하는 값(mutable)인지 변하지 않는 값(immutable)인지에 따라 다릅니다.
문자열은 immutable이기 때문에 함수내에서 지역변수로 새로 생성되어 함수를 벗어나면 사라집니다.
리스트는 mutable이기 때문에 전달받은 값을 함수에서 그대로 사용합니다.
박응용 님
2021년 3월 14일 9:53 오전