📄Модули🐍Программы на Python содержат тысячи, десятки тысяч и сотни тысяч строк кода (есть проекты с миллионами). В таких условиях одним файлом с кодом не обойдёшься — его нужно разбивать на части. Для получения доступа к коду, который находится в других файлах, в Python реализован механизм
модулей.
Модули и импортированиеИтак, файл с кодом на Python называется
модулем. Имя модуля соответствует имени файла, поэтому файлы в Python принято называть в стиле "snake_case" (отметьте иронию: Python — питон — змея — snake — snake_case). Одни модули могут использовать содержимое других, если
импортируют эти другие модули с помощью инструкции
import.
Строго говоря, в Python импортировать модули можно несколькими способами:
импортировать сам модуль
импортировать отдельные определения из модуля
импортировать всё содержимое модуля сразу
Импортирование модуля
Рассмотрим применение первого способа — импортирование модуля целиком. Главное удобство упоминания модуля по имени: глядя на код, мы сразу видим, что используемая переменная или вызываемая функция — это часть конкретного модуля.
Синтаксис импорта:
import <имя_модуля (без суффикса ".py")>Всё просто: после ключевого слова
import указываем имя модуля (файла). Но при этом суффикс
.py в имени надо опустить. То есть, к примеру, для модуля с именем
my_module.py в инструкции импорта достаточно прописать
my_module, а полный вид инструкции будет таким:
import my_module.
В модуле (файле) с именем
greeting.py определим функцию
say_hi и переменную
name:
# file: greeting.pydef say_hi(): print('Hi!')name = 'Bob'А в модуле с именем
main.py сделаем импорт содержимого модуля
greeting.py:
# file: main.pyimport greeting # заметьте, расширение ".py" не указывается!print(greeting.name) # => Bobgreeting.say_hi() # => Hi!Импортирование модуля в таком виде делает модуль доступным по имени — в данном случае это
greeting. К содержимому же модуля можно обратиться, как говорят, "через точку". Причём можно как получать доступ к переменным (
greeting.name), так и вызывать функции модуля (
greeting.say_hi()).
Импортирование отдельных определений
Синтаксис импорта:
from <имя_модуля (без суффикса ".py")> import <список определений>.
Иногда из всего модуля нужна пара функций или переменных, а имя модуля слишком длинное, чтобы писать его каждый раз. Здесь нам может пригодиться следующий вариант использования инструкции
import:
# file: main.pyfrom greeting import say_hi, nameprint(name) # используем переменнуюsay_hi() # вызываем функциюЗдесь после ключевого слова
from указано имя модуля, а затем после ключевого слова
import — имена определений из этого модуля, которые мы в дальнейшем хотим использовать напрямую (а не "через точку").
В следующем уроке мы рассмотрим третий вариант импортирования модуля ("импорт всего содержимого") и в целом немного углубим наши познания в этой теме.