English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Метод динамической загрузки Python

Языки скриптов имеют одно преимущество - динамическую загрузку. Язык lua имеет это преимущество, python также обладает этой характеристикой. Говоря простыми словами, если разработчик обнаруживает, что его код содержит ошибки, он может динамически заменить модуль, не закрывая исходный код. Метод замены обычно выполняется с помощью reload.

1, основная идея reload

reload выполняет две основные операции: удаляет старый модуль и добавляет новый модуль

2, эквивалентный код reload

del sys.modules[module_name]
__import__(module_name)

3, что нужно учитывать при использовании reload

3.1 Входным параметром reload является module, а не строка, то есть

import sys
module = sys.modules[module_name]

3.2 Перегружаемый файл - это только файл __init__.py соответствующего модуля, если это другой файл, то он не будет работать

3.3 Если это файл в каталоге,则需要分别重新加载,например

import sys
del sys.modules['module_name:sub_file']
__import__('module_name:sub_file')

или

reload(sys.modules['module_name:sub_file'])

Обобщение

Указанные выше методы реализации динамической загрузки Python,介绍的编辑希望对大家有所帮助. Если у вас есть какие-либо вопросы, пожалуйста, оставьте комментарий, редактор ответит вам в ближайшее время. В этом также выражается глубокая благодарность за поддержку учебника呐喊!

Заявление: содержание этой статьи взято из Интернета, авторские права принадлежат авторам, контент предоставлен пользователями Интернета, сайт не имеет права собственности, не underwent редактирование人工, и не несет ответственности за соответствующие юридические последствия. Если вы обнаружите подозрительное содержимое о нарушении авторских прав, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (при отправке письма, пожалуйста, замените # на @) для сообщения о нарушении и предоставьте соответствующие доказательства. Как только будет установлено, сайт немедленно удаляет涉嫌侵权的内容。

Давай, посмотри!