Сообщить об ошибке.

Конструкция импорта import modulle as name

Примечание: в примерах ниже предполагается, что у вас уже есть файл с содержимым и именем, описанным в начале раздела "Определение модуля и его импорт"

Вы также можете импортировать целый модуль под другим именем, используя конструкцию import <module> as <name>. Оператор as производит связывание имя модуля md с именем переменной foo.

Это фактически импорт модуля тем же способом, что и import md, с той лишь разницей, что он теперь будет доступен как foo:

>>> import md as foo
>>> foo.a
# [100, 200, 300]
>>> foo.fib(500)
# 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377

Содержимое модуля можно импортировать из определения функции. В этом случае импорт не выполняется до тех пор, пока не будет вызвана функция:

>>> def foo():
...     import md as foo
...     foo.fib(500)
...

>>> foo()
# 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377

Python 3 не допускает неразборчивого импорта из тела функции, в синтаксисе которого встречается символ '*' :

>>> def foo():
...     from md import *
...
# SyntaxError: import * only allowed at module level

И последнее, инструкция try с предложением except ImportError можно использовать для защиты от неудачных попыток импорта:

>>> try:
...     # Несуществующий модуль
...     import fib
... except ImportError:
...     print('Module not found')
...

# Module not found