Для реальных приложений на рынке разработчики пишут сотни и тысячи строк кода. Есть даже проекты, в которых несколько миллионов строк. Подобный масштабный проект невозможно написать в одном файле, команда запутается в своем же коде, не сможет поддерживать и обновлять его. Поэтому файл с кодом нужно разбивать на части. Этот принцип применяется во многих языках программирования. В Python с этой целью используются модули.
В Python любой файл с кодом называется модулем — между этими терминами нет разницы. Чтобы всем Python-разработчикам было удобно читать готовый код, принято называть файлы в стиле snake_case: то есть с маленькой буквы и с разделением слов через символ подчеркивания. Это легко запомнить: snake_case переводится как «змеиный регистр» и поэтому идеально сочетается с языком Python.
Работать с кодом на тысячи строк намного проще, если он разбит на несколько модулей. В таком случае обычно работают с главным файлом, а отдельные функции помещают в разные модули. Затем модули импортируют в main.py с помощью ключевого слова import
. В итоге команда разработчиков получает удобный читабельный код, который удобно обслуживать.
Чтобы попрактиковаться, попробуем создать свой модуль. Для этого мы создадим файл с названием greeting.py. Затем внутри этого файла определим функцию say_hi()
и переменную name
:
# file: greeting.py
def say_hi(): # определяем функцию
print('Hi!')
name = 'Bob' # определяем переменнную
Модуль-приветствие готов: он умеет печатать строку Hi!
и обрабатывать переменную name
. Но в нем нет никакой пользы, пока он не встроен в работу всей остальной программы. Чтобы воспользоваться нашим модулем, нужно импортировать его в главный модуль main.py.
Для этого в Python есть три способа:
Здесь мы рассмотрим только первый и второй способ, а третий обсудим подробно уже в следующем уроке.
Это самый простой способ: используем ключевое слово import
вместе с названием файла без расширения .py. Перейдем в главный файл main.py и импортируем туда наш модуль greeting.py:
# file: main.py
import greeting
Импорт прошел успешно — у нас появился доступ к модулю-приветствию прямо из главного файла. Теперь к содержимому модуля можно обращаться «через точку». Так можно вызвать функцию модуля или отдельную переменную:
# вызываем функцию модуля
greeting.say_hi() # => Hi!
# выводим на экран отдельную переменную
print(greeting.name) # => Bob
Это самый распространенный способ, потому что такой код легко читать. Любой разработчик с первого взгляда может определить, что используемая переменная или вызываемая функция — это часть какого-то конкретного модуля.
Иногда первый способ не подходит — например, из длинного и сложного модуля вам нужна всего пара функций или переменных. Тогда поможет второй способ импорта: нужно написать ключевое слово from
с названием модуля без расширения .py. Затем в той же строке указываем ключевое слово import
с названием определений, которые хотим использовать. Так это выглядит в коде:
# file: main.py
from greeting import say_hi, name # импортируем отдельные компоненты модуля
print(name) # используем импортированную переменную
say_hi() # вызываем импортированную функцию
В следующем уроке мы немного углубим наши познания в этой теме и рассмотрим третий вариант импорта модуля.
Вам ответят команда поддержки Хекслета или другие студенты.
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
Наши выпускники работают в компаниях:
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.
Зарегистрируйтесь или войдите в свой аккаунт