콘텐츠로 건너뛰기

파이썬 포인터 사용법과 수정 방법

[

Python 포인터: 포인터 작동 원리 이해하기

시작하기

Python 튜토리얼 → 자세한 기사 및 비디오 강좌

더 많은 내용

검색

가입하기


  • FREE 이메일 시리즈 -

🐍 파이썬 팁 💌

Python 팁 Dictionary Merge

Python 팁 받기 »

🔒 광고가 아닙니다. 언제든지 구독 취소할 수 있습니다.

  • 주제 탐색
  • 가이드 학습 경로
    • 기본
    • 중급
    • 고급

api best-practices career community databases data-science data-structures data-viz devops django docker editors flask front-end gamedev gui machine-learning numpy projects python testing tools web-dev web-scraping

목차

  • 파이썬의 포인터가 없는 이유
  • 파이썬에서의 객체
  • 가변 vs 불변 객체
  • 변수 이해하기
    • C의 변수
    • 파이썬에서의 이름 사용
    • 파이썬에서 인턴 객체에 대한 참고사항
  • 파이썬에서 포인터 시뮬레이션
    • 가변 타입을 포인터로 사용
    • 파이썬 객체 사용
  • ctypes를 사용한 실제 포인터
  • 결론

파이썬 포인터의 부재 이유

파이썬에서 포인터가 없는 이유는 정확히 알 수 없다. 파이썬에서 포인터를 바로 사용할 수 있을까요? 아마도 가능하지만, 포인터는 파이썬의 철학과 다른 면이 있습니다.

포인터는 명시적 변경 대신 암묵적 변경을 촉진합니다. 특히 초보자에게는 복잡한 면이 많아 입문자에게는 어렵습니다. 게다가 실수로 메모리의 잘못된 영역을 읽어내는 등의 위험을 야기할 수 있으므로 매우 위험할 수 있습니다.

파이썬은 주로 사용성을 강조하기 때문에 메모리 주소와 같은 구현 세부 사항을 사용자로부터 추상화시켜 줍니다. 파이썬은 기본적으로 포인터를 사용하는 이점도 제공합니다.

파이썬에서 포인터를 이해하기 위해서는 파이썬의 구현 세부 사항에 대하여 간단히 알아야 합니다. 특히 다음을 이해해야 합니다.

  1. 가변 vs 불변 객체
  2. 파이썬 변수/이름

메모리 주소를 확보하고 시작해봅시다.

파이썬에서의 객체

파이썬에서 모든 것은 객체입니다. 이를 확인하기 위해 REPL을 열고 isinstance()를 사용하여 탐색할 수 있습니다.

>>> isinstance(1, object)
True
>>> isinstance(list(), object)
True
>>> isinstance(True, object)
True
>>> def foo():
... pass
...
>>> isinstance(foo, object)
True

이 코드는 객체라면 모든 것이 True라는 것을 보여줍니다.

Include as much as detailed, step by step, executable sample codes as possible.