<Python>Immutable vs Mutable

박서연·2023년 1월 20일
0

Python

목록 보기
5/8
post-thumbnail

🔅 참고 https://pythontutor.com/visualize.html#mode=edit
🔅 Java에서 call by reference, call by value의 개념

1. Immutable

변하지 않는 자료형
정수, 실수, 문자열, 튜플

a = 1
def vartest(a):
	a = a+1
vartest(a)
print(a)

출력값 1

🔅 정수는 변하지 않으므로 새로운 a를 만들고 이는 return 되지 않으므로 영향을 미치지 않음

2. Mutable

변할 수 있는 자료형
리스트, 딕셔너리, 집합

b = [1,2,3]
def vartest2(b):
	b = b.append(4)
vartest2(b)
print(b)

출력값 [1,2,3,4]

🔅 리스트는 변할 수 있으므로 vartest2에서는 전역변수 b의 주소를 가져오고 지역변수 b도 같은 주소값을 가리켜 변화시킬 수 있음
이 때 전역변수 b와 지역변수 b는 전혀 다른 값

0개의 댓글