ROKO

[Python] mutable vs immutable 본문

Computer Science/Programming Language

[Python] mutable vs immutable

RO_KO 2023. 3. 3. 18:38
728x90

쉽게 설명하면, 변수에 값을 할당 후 코드실행과정에서 변수의 값이 변동 된다면 mutable 바뀌지 않는다면 immutable이다.

 

bulit-in type is immutable!

var = 1
var = 2 
print(var)

# 2 출력

1에서 2로 바뀌었으니 바뀐거 아냐?

변수에 담긴 객체가 바뀐것이지 변수의 형태가 바뀐것이 아니다.

 

이러한 것들로 int, float, str, tuple이 있다. 한번 선언된 이후로 type이 변형되는 것이 아닌 내포하는 객체의 값이 변경될 수 있다는 점을 인지하자.

 

mutable

mutable 객체는 값이 들어오면 immutable처럼 내부 값을 변화시켜 return하는게 아니라 객체의 형태를 변형시켜 값을 받는다.

list, dict, set 과 같은 자료형들이 mutable하다. list를 예를 들어보자.

ex = [1,2]
ex.append(3)

print(ex)
# [1, 2, 3] 객체를 변형해 3값을 받음

mutable의 메소드들도 실행 후 새로운 객체를 만들어 return해주는게 아닌 같은 id 객체에서 변형한다. 따라서 메소드 실행 후 다른 변수에 할당하려 하면 None값이 전달되게 된다. (return 값이 없으므로 None!)

a = [1, 2, 3]
b = a.sort()

print(b)
# None 출력
728x90

'Computer Science > Programming Language' 카테고리의 다른 글

[Python] lambda  (0) 2023.03.04
[Python] function  (0) 2023.03.04
[Python] Container, Sequence  (0) 2023.03.03
[Python] Recursion limitataion  (0) 2023.03.03
Comments