• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

파이썬 인터프리터 클래스 메모리 할당 문의

20.03.18 22:45 작성 조회수 189

0

파이썬 인터프리터가 파이썬을 실행 할때 프로젝트 내의 모든 class를 메모리 영역에 올리는 지 궁금합니다.

파이썬이 class자체도 객체로 인식 한다고 하여 생긴 궁금점입니다. 그리고 객체를 생성하지 않는 클래스도 마찬가지로 메모리에 올라가는 지 궁금합니다. 

그리고 좋은 강의 항상 감사합니다.

추후 고급편 강의도 부탁드립니다.

답변 1

답변을 작성해보세요.

1

느린바란님 좋은 질문 감사합니다.

인터프리터에서 path module에 등록된 모든 클래스들은 로드시에 적재됩니다.

일반 클래스는 실행시점에 로드되는 것으로 알고 있습니다.

감사합니다.

공식 레퍼런스를 살펴보면

https://docs.python.org/ko/3/tutorial/classes.html

보통, 지역 스코프는 현재 함수의 지역 이름들을 (텍스트 적으로) 참조합니다. 함수 바깥에서, 지역 스코프는 전역 스코프와 같은 이름 공간을 참조합니다: 모듈의 이름 공간. 클래스 정의들은 지역 스코프에 또 하나의 이름 공간을 배치합니다.

스코프가 텍스트 적으로 결정된다는 것을 깨닫는 것은 중요합니다: 모듈에서 정의된 함수의 전역 스코프는, 어디에서 어떤 에일리어스를 통해 그 함수가 호출되는지에 관계없이, 그 모듈의 이름 공간입니다. 반면에, 이름을 실제로 검색하는 것은 실행시간에 동적으로 수행됩니다 — 하지만, 언어 정의는 컴파일 시점의 정적인 이름 결정을 향해 진화하고 있어서, 동적인 이름 결정에 의존하지 말아야 합니다! (사실, 지역 변수들은 이미 정적으로 결정됩니다.)