Динамическая загрузка и статическая загрузка модулей в Django - PullRequest
0 голосов
/ 04 июля 2011

Есть ли какая-либо разница между модулями динамической загрузки и статической загрузки в Django?Как насчет его эффективности?Кто может рассказать мне принципы работы механизма динамической загрузки и статической загрузки модулей в Django?

Ответы [ 2 ]

0 голосов
/ 07 июля 2011

Из-за природы Python весь код загружается (== выполняется) динамически.

Если вы определяете имя модуля только во время выполнения, вы можете использовать функцию __import__:

s = "simplemodule" if use_simple else "extendedmodule"
mymodule = __import__(s)
mymodule.myfunction()

Вы также можете reload() ранее загруженный модуль (например, если вы изменили его исходный код).

0 голосов
/ 04 июля 2011

Во-первых, это вопрос Python, а не вопрос Django, поскольку модули являются концепцией Python.

Во-вторых, в Python не существует такой вещи, как статическая загрузка, поскольку по сути это динамический язык.

Поэтому загрузка модуля в Python всегда динамична.

Единственное, что вы должны знать:

  • после импорта модуля код выполняется;
  • если вы снова импортируете модуль, Python получает ссылку при первой загрузке, поэтому он работает быстро и не выполняет код снова;
  • вы можете использовать import в функции, но это не такрекомендуется, и импортированный модуль не будет доступен за пределами области действия функции.

Последние параметры наиболее близки к «динамической загрузке», так как вы можете выбрать, что импортировать во время выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...