대화식으로 파이썬에서 모듈을 다시 가져 오기
나는 그것이 가능하다는 것을 알고 있지만 어떻게 기억하지 못한다.
파이썬에서 모듈을 어떻게 다시 가져올 수 있습니까? 시나리오는 다음과 같습니다. 대화식으로 모듈을 가져 와서 땜질하지만 오류가 발생합니다. .py 파일의 오류를 수정 한 다음 파이썬을 종료하지 않고 고정 모듈을 다시 가져오고 싶습니다. 어떻게하니 ?
이것은 작동해야합니다 :
reload(my.module)
로부터 파이썬 문서
이전에 가져온 모듈을 다시로드하십시오. 인수는 모듈 객체 여야하므로 이전에 성공적으로 가져와야합니다. 외부 편집기를 사용하여 모듈 소스 파일을 편집했으며 Python 인터프리터를 떠나지 않고 새 버전을 시험해보고 싶을 때 유용합니다.
Python 3.4 이상을 실행하는 경우 import importlib
수행하십시오 importlib.reload(nameOfModule)
.
이 방법을 사용할 때의주의 사항을 잊지 마십시오.
모듈을 다시로드하면 해당 사전 (모듈의 전역 변수 포함)이 유지됩니다. 이름을 재정의하면 이전 정의가 재정의되므로 일반적으로 문제가되지 않습니다. 새 버전의 모듈이 이전 버전으로 정의 된 이름을 정의하지 않으면 이전 정의가 그대로 유지됩니다.
모듈이을 사용하여 다른 모듈에서 객체를 가져 오는 경우 다른 모듈을
from ... import ...
호출reload()
해도 해당 모듈에서 가져온 객체를 재정의하지 않습니다.이 중 한 가지 방법은 from 문을 다시 실행하는 것이고 다른 하나는 대신import
정규화 된 이름 (module.*name*
)을 사용하는 것입니다.모듈이 클래스의 인스턴스를 인스턴스화하는 경우 클래스를 정의하는 모듈을 다시로드해도 인스턴스의 메서드 정의에는 영향을 미치지 않습니다. 이전 클래스 정의는 계속 사용됩니다. 파생 클래스에 대해서도 마찬가지입니다.
파이썬 3에서는 reload
더 이상 내장 함수가 아닙니다.
파이썬 3.4 이상을 사용 reload
하는 경우 importlib
대신 라이브러리 에서 사용해야 합니다.
import importlib
importlib.reload(some_module)
파이썬 3.2 또는 3.3을 사용하는 경우 다음을 수행해야합니다.
import imp
imp.reload(module)
대신에. http://docs.python.org/3.0/library/imp.html#imp.reload를 참조 하십시오.
를 ipython
사용하는 경우 autoreload
확장명을 사용하는 것이 좋습니다 .
%load_ext autoreload
%autoreload 2
실제로 Python 3에서 모듈 imp
은 DEPRECATED로 표시됩니다. 글쎄, 적어도 3.4에 해당됩니다.
대신 모듈 의 reload
기능을 importlib
사용해야합니다.
https://docs.python.org/3/library/importlib.html#importlib.reload
그러나이 라이브러리에는 마지막 두 개의 부 버전에서 일부 API 변경이있었습니다.
참고 URL : https://stackoverflow.com/questions/1254370/reimport-a-module-in-python-while-interactive
'Programing' 카테고리의 다른 글
강조 표시 / 선택된 텍스트 가져 오기 (0) | 2020.03.07 |
---|---|
UNIX pwd와 동등한 Windows (0) | 2020.03.07 |
간격이 동일한 DIV의 유체 폭 (0) | 2020.03.07 |
파일 입력 'accept'속성-유용합니까? (0) | 2020.03.07 |
파이썬에서 슈퍼 생성자를 호출하는 방법? (0) | 2020.03.07 |