2012-10-25 1 views
0

Python 콘솔 (Eclipse, Pydev)에서 일부 데이터로드를 실행합니다. 이후에 개체의 메서드에 대한 일부 소스 코드를 변경하고 데이터 개체에 새로운 기능을 포함하려고합니다. 데이터로드가 매우 느려서 전체 스크립트를 다시 시작하지 않으려합니다.Python의 콘솔에 이미 존재하는 객체의 새로 고침 방법

소스 코드에서 편집 한 새 구현으로 객체 메소드를 업데이트하는 마법 방법이 있습니까?

How to reload the code of a method of class object in Python?은 표준 방식으로는이 작업을 수행 할 수 없다고 말합니다.

그런 기능을 시뮬레이트하는 방법을 생각해 볼 수 있습니까? 클래스 정의를 다시로드 한 다음 __dict__ 또는 그와 유사한 내용을 검토하여 모든 데이터 객체를 다시 만들 수 있습니까? 이상적으로 이것은 자동적이고 가능한 한 편안 할 것입니다. 고려해야 할 사항은 무엇입니까?

답변

1

불행히도 파이썬은 기존의 개체 인스턴스를 바꿀 수 없습니다. 그러나 IPython은이 기능을 확장으로 구현합니다. IPython을 Python 콘솔로 사용하거나 개발 환경에 맞게이 기능을 다시 구현할 수 있습니다.

Autoreload of modules in IPython, and ipython docs을 참조하십시오.

+0

나는 볼 수 있습니다 :) 그러나 이미 메모리에있는 객체 클래스를 다시로드하지 않습니까? – Gerenuk

+0

실제로 메모리에 이미있는 클래스를 다시로드합니다. 앞서 언급 한 SO 질문을 사용하여 ipython 자동로드 예제를 사용해보십시오. 나에게 그것은 클래스와 객체에서도 작동한다. –

관련 문제