Зарегистрируйтесь, чтобы продолжить обучение

Модули Основы Python

Для реальных приложений на рынке разработчики пишут сотни и тысячи строчек кода. Есть даже проекты, в которых несколько миллионов строчек. Подобный масштабный проект невозможно сохранить в одном файле, команда запутается в своем же коде, не сможет поддерживать и обновлять его. Поэтому файл с кодом нужно разбивать на части. Этот принцип применяется во многих языках программирования. В Python с этой целью используются модули.

В Python любой файл с кодом называется модулем — между этими терминами нет разницы. Чтобы всем Python-разработчикам было удобно читать готовый код, принято называть файлы в стиле snake_case: то есть с маленькой буквы и с разделением слов символом подчеркивания. Это легко запомнить: snake_case переводится как «змеиный регистр» и поэтому идеально сочетается с языком Python.

Как использовать модули

Работать с кодом в тысячи строчек намного проще, если он разбит на несколько модулей. В таком случае обычно работают с главным файлом, а отдельные функции помещают в разные модули. Затем модули импортируют в main.py с помощью ключевого слова import. В итоге команда разработчиков получает код, который легко читать и обслуживать.

Чтобы попрактиковаться, попробуем создать свой модуль. Для этого мы создадим файл с названием greeting.py. Затем внутри этого файла определим функцию say_hi() и переменную name:

# file: greeting.py
def say_hi() -> None:  # определяем функцию
    print("Hi!")


name = "Bob"  # определяем переменную

Модуль-приветствие готов: он умеет печатать строку Hi! и обрабатывать переменную name. Но от него нет никакой пользы, пока он не встроен в работу всей остальной программы. Чтобы воспользоваться нашим модулем, нужно импортировать его в главный модуль main.py.

Для этого в Python есть три способа:

  1. Импорт модуля целиком
  2. Импорт отдельных определений из модуля
  3. Импорт всего содержимого модуля сразу

Здесь мы рассмотрим только первый и второй способы, а третий обсудим подробно уже в следующем уроке.

Импорт модуля целиком

Это самый простой способ: используем ключевое слово import вместе с названием файла без расширения .py. Перейдем в главный файл main.py и импортируем туда наш модуль greeting.py:

# file: main.py
import greeting

Импорт прошел успешно — у нас появился доступ к модулю-приветствию прямо из главного файла. Теперь к содержимому модуля можно обращаться «через точку». Так можно вызвать функцию модуля или отдельную переменную:

# вызываем функцию модуля
greeting.say_hi()  # => Hi!

# выводим на экран отдельную переменную
print(greeting.name)  # => Bob

Greeting

Это самый распространенный способ, потому что такой код легко читать. Любой разработчик с первого взгляда может определить, что используемая переменная или вызываемая функция — это часть какого-то конкретного модуля.

Импорт отдельных определений

Иногда первый способ не подходит — например, из длинного и сложного модуля вам нужна всего пара функций или переменных. Тогда поможет второй способ импорта: нужно написать ключевое слово from с названием модуля без расширения .py. Затем в той же строчке указываем ключевое слово import с названиями определений, которые хотим использовать. Так это выглядит в коде:

# file: main.py
from greeting import say_hi, name  # импортируем отдельные компоненты модуля

print(name)  # используем импортированную переменную
say_hi()  # вызываем импортированную функцию

Также при импорте можно указать новое название для импортируемого компонента с помощью ключевого слова as

# file: main.py
from greeting import say_hi as hello, name as first_name

print(first_name)
hello()

В следующем уроке мы глубже изучим эту тему и рассмотрим третий вариант импорта модуля.

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff