Хотя reload
действительно перезагружает модуль, как упоминается в другом ответе, вам нужно немало мер предосторожности, чтобы он работал гладко - и для некоторых вещей, которые, как вы думаете, сработали бы легко, вас ждет шок с точки зрения объема фактически необходимых работ.
Если вы когда-либо используете форму from module import afunction
, то вы почти гарантировали, что reload
не будет работать: вы должны исключительно модули импорта, никогда функций, классов, и т.д., из внутренних модулей, если вы хотите иметь какую-то надежду на то, что reload
сделает что-то полезное для всех (в противном случае вам придется каким-то образом выискивать все биты и куски, импортированные здесь и там из модуля, и заново связывать каждый из них - eep ;-). Обратите внимание, что в любом случае я предпочитаю следовать этому правилу, независимо от того, планирую ли я выполнять перезагрузку или нет, но с перезагрузкой это крайне важно .
Сложная проблема заключается в следующем: если у вас есть живые где-нибудь экземпляры классов, которые существовали в предыдущей версии модуля, reload
как таковой абсолютно ничего не сделает для обновления этих экземпляров. Эта проблема действительно сложная; Один из самых длинных и сложных рецептов в Python Cookbook (2-е издание) посвящен тому, как кодировать ваши модули для поддержки такой «перезагрузки, которая фактически обновляет существующие экземпляры». Конечно, это имеет значение, только если вы программируете в стиле ООП, но ... любой программный комплекс на Python, достаточно сложный для того, чтобы потребовать функциональности "перезагрузить этот плагин", очень может иметь много ООП, поэтому вряд ли незначительная проблема.
Документы для перезагрузки довольно полны и упоминают эту проблему, но не дают подсказки, как ее решить. Этот рецепт Майкла Хадсона из онлайн-книги Python Cookbook лучше, но это только начало того, что мы превратили в печатное (2-е издание) - рецепт 20.15, онлайн-версия которого здесь (не полностью, если вы не подпишетесь на бесплатный ограниченный по времени предварительный просмотр коммерческого онлайн-сервиса книг О'Рейли).