reload() 함수의 기본 개념
파이썬에서 reload(moduleName) 함수는 이전에 불러온(import) 모듈을 다시 로드하는 역할을 합니다. 단, 이 함수가 정상적으로 작동하려면 해당 모듈이 import moduleName 형태로 이미 로드되어 있어야 합니다.
이 함수는 주로 대화형(인터랙티브) 환경에서 유용하게 사용됩니다. 예를 들어, 파이썬 인터프리터를 종료하지 않은 상태에서 모듈의 소스 파일을 수정한 뒤, 변경 사항을 즉시 테스트하고 싶을 때 reload()를 사용하면 편리합니다.
사용 예제
>>> import mymodule >>> # mymodule을 수정한 후 이 스크립트에서 다시 로드하고 싶을 때 >>> reload(mymodule)
주의할 점
여기서 moduleName은 모듈 이름을 담고 있는 문자열이 아니라, 실제 모듈 객체 그 자체라는 점에 유의해야 합니다. 즉, reload("mymodule")처럼 따옴표로 감싸서 전달하면 오류가 발생합니다.
파이썬 3에서의 변경 사항
파이썬 2에서는 reload()가 내장 함수(builtins)였지만, 파이썬 3부터는 imp 모듈로 이동되었습니다. 따라서 파이썬 3에서 reload 기능을 사용하려면 다음과 같이 작성해야 합니다.
>>> import imp >>> imp.reload(mymodule)
참고로 파이썬 3.4 이상 버전에서는 imp 모듈이 지원 중단(deprecated)되었으며, 대신 importlib.reload(mymodule) 사용이 권장됩니다.