🔅 참고 https://pythontutor.com/visualize.html#mode=edit
🔅 Java에서 call by reference, call by value의 개념
변하지 않는 자료형
정수, 실수, 문자열, 튜플
a = 1
def vartest(a):
a = a+1
vartest(a)
print(a)
출력값 1
🔅 정수는 변하지 않으므로 새로운 a를 만들고 이는 return 되지 않으므로 영향을 미치지 않음
변할 수 있는 자료형
리스트, 딕셔너리, 집합
b = [1,2,3]
def vartest2(b):
b = b.append(4)
vartest2(b)
print(b)
출력값 [1,2,3,4]
🔅 리스트는 변할 수 있으므로 vartest2에서는 전역변수 b의 주소를 가져오고 지역변수 b도 같은 주소값을 가리켜 변화시킬 수 있음
이 때 전역변수 b와 지역변수 b는 전혀 다른 값