Нет, он не импортируется и не загружается.
Этот код проверяет, что модуль не добавляется к пространству имен:
>>> if False:
... import time
... else:
... time.clock()
...
Traceback (most recent call last):
File "<stdin>", line 4, in <module>
NameError: name 'time' is not defined
И этот код доказывает, что import
оператор никогда не запускать, так как в противном случае это привело бы к ImportError
. Это означает, что модуль никогда не загружается в sys.modules
, cache (in the memory) всех модулей, которые были импортированы ранее.
>>> if False:
... import thismoduledoesnotexist
...
>>> import thismoduledoesnotexist
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named thismoduledoesnotexist
В основном это связано с тем, что все, что делает Python перед запуском сценария является скомпилировать его байткод, и как таковой не оценивает заявления до их встречаемости.
вы также можете проверить sys.modules, если модуль был загружен. –
@GabrielSamfira вы прокомментировали, когда я редактировал свой ответ :) – edsioufi