Рекурсивная версия reload
Когда я'Разрабатывая код Python, я обычно тестирую его в интерпретаторе. Я'Л.Л.import some_module
, протестируйте его, найдите ошибку, исправьте ошибку и сохраните, а затем используйте встроенныйreload
функция кreload(some_module)
и проверить снова.
Однако предположим, что вsome_module
я имеюimport some_other_module
и во время тестированияsome_module
Я обнаружил ошибку вsome_other_module
и исправить это. Сейчас звонюreload(some_module)
победил'рекурсивный ре-импортsome_other_module
, Я должен либо вручную импортировать зависимость (делая что-то вродеreload(some_module.some_other_module)
, или жеimport some_other_module; reload(some_other_module)
или, если яЯ изменил целую кучу зависимостей и потерял отслеживание того, что мне нужно перезагрузить, мне нужно перезапустить весь интерпретатор.
Какие'было бы удобнее, если бы были некоторыеrecursive_reload
функция, и я мог бы просто сделатьrecursive_reload(some_module)
и есть Python не только перезагрузитьsome_module
, но также рекурсивно перезагрузить каждый модуль, которыйsome_module
импорт (и каждый модуль, который импортирует каждый из этих модулей и т. д.), чтобы я мог быть уверен, чтот использование старой версии любого из других модулей, на которыхsome_module
зависит.
Я нене думаю, что тамЧто-нибудь встроенное в Python, которое ведет себя какrecursive_reload
функцию я опишу здесь, но есть ли простой способ взломать такую вещь вместе?