본문 바로가기
Python/pythonic 용법

파이썬의 메모리 사용 또는 포인터개념의 고찰

by c급선임 2024. 12. 27.
반응형

파이썬에서 모든 객체는 다음과 같이 변경 가능개체(mutable)과 변경 불가능한 객체(immutable)로 나뉨

  1. 변경 불가능한 객체 (Immutable Objects):
    • 예: int, float, str, tuple
    • 이러한 객체는 값을 변경할 수 없으므로, 변수에 값을 할당할 때마다 새로운 객체가 생성
    • 예를 들어:
  2. 변경 가능한 객체 (Mutable Objects):
    • 예: list, dict, set
    • 이러한 객체는 값을 변경할 수 있으므로, 변수에 값을 할당할 때 참조가 전달
    • 예를 들어:

 

따라서 C언어같이 int 변수자체에 포인터를 주어서 b = &a 같이 특정한 메모리 주소에 내가 어떤 immutable 객체를 할당하고 제어한다는 개념 자체가 불가능함

오직 리스트나 딕셔너리 같은 mutable 객체만 가능

왜냐하면 파이썬의 작동 방식은 이미 immutable 객체가 정의되는 동시에 단일 파이썬에서 선택한 메모리에 고정적으로 들어가 있고, 어떠한 새로운 정의가 나오더라도 값이 이미 정의되었던 immutable객체의 값중 하나이면 그냥 그 주소를 참조함

 

 

 

반응형

'Python > pythonic 용법' 카테고리의 다른 글

enumerate() 함수  (0) 2024.06.28
lambda 함수  (0) 2024.06.28
Comprehension 개념  (0) 2024.06.28
zip() 함수  (0) 2024.06.28
global()[] 함수  (0) 2024.06.28

댓글