본문 바로가기
Python/Python FAQ

Python 대화식으로 모듈을 다시 가져오기, Reimport a module while interactive

by 베타코드 2023. 9. 19.
반응형

질문


모듈을 다시 가져오는 방법은 어떻게 되나요? .py 파일을 수정한 후 모듈을 다시 가져오고 싶습니다.


답변


Python 3.4+의 경우:

import importlib
importlib.reload(nameOfModule)

Python < 3.4의 경우:

reload(my.module)

Python 문서에서 가져왔습니다.

이전에 가져온 모듈을 다시 불러옵니다. 인수는 모듈 객체여야 하므로 이전에 성공적으로 가져와야 합니다. 이 기능은 모듈 소스 파일을 외부 편집기를 사용하여 편집한 후 Python 인터프리터를 종료하지 않고 새 버전을 시도하려는 경우 유용합니다.

이 방법을 사용할 때 유의해야 할 사항을 잊지 마세요:

  • 모듈을 다시 불러올 때 모듈의 사전(모듈의 전역 변수를 포함하는)은 유지됩니다. 이름의 재정의는 이전 정의를 덮어씁니다. 따라서 일반적으로 문제가 되지 않지만, 새 버전의 모듈이 이전 버전에서 정의된 이름을 정의하지 않는 경우 이전 정의는 제거되지 않습니다.

  • 모듈이 from ... import ...을 사용하여 다른 모듈에서 객체를 가져오는 경우, 다른 모듈에 대해 reload()를 호출하여 가져온 객체를 재정의하지 않습니다. 이를 해결하기 위한 한 가지 방법은 from 문을 다시 실행하는 것이고, 또 다른 방법은 import 및 정규화된 이름(module.*name*)을 사용하는 것입니다.

  • 모듈이 클래스의 인스턴스를 생성하는 경우, 클래스를 정의하는 모듈을 다시 불러오더라도 인스턴스의 메서드 정의에는 영향을 주지 않습니다. 인스턴스는 이전 클래스 정의를 계속 사용합니다. 파생 클래스에도 동일한 내용이 적용됩니다.

반응형

댓글