Ваш первый модуль: шаг 1
В этом разделе вы будете работать локально на своем компьютере. Начнем с нуля. Создайте пустой файл, как тут:
module.py
Вам нужно два файла, чтобы повторить эти эксперименты. Одним из них будет сам модуль. Сейчас он пуст. Не волнуйтесь, вы заполните его реальным кодом.
Мы назвали файл module.py. Не очень креативно, но просто и понятно.
Ваш первый модуль: шаг 2
Второй файл содержит код, использующий новый модуль. Его имя main.py.
Его содержание пока тоже очень краткое:
import module
main.py
Примечание: оба файла должны находиться в одной папке. Мы настоятельно рекомендуем Вам создать новую папку для обоих файлов. Некоторые вещи тогда будут делаться намного легче.
Запустите IDLE (или любое другое IDE, которое предпочитаете) и запустите файл main.py. Что Вы видите?
Вы ничего не должны видеть. Это означает, что Python успешно импортировал содержимое файла module.py. Неважно, что модуль пока пуст. Самый первый шаг был сделан, но прежде чем перейти к следующему шагу, мы бы хотели, чтобы Вы заглянули в папку, в которой находятся оба файла.
Заметили что-то интересное?
Появилась новая подпапка, видите ее? Ее имя __pycache__. Загляните внутрь. Что Вы видите?
Есть файл с именем module.cpython-xy.pyc, где x и y - это цифры, полученные из вашей версии Python (например, они будут 3 и 8, если Вы используете Python 3.8).
Имя файла совпадает с именем Вашего модуля (модуль здесь). Часть после первой точки сообщает, какая реализация Python создала файл (CPython здесь) и номер его версии. Последняя часть (pyc) происходит от слов Python и compiled.
Вы можете заглянуть внутрь файла - содержимое совершенно нечитаемо для людей. Это должно быть так, поскольку файл предназначен только для использования Python-ом.
Когда Python впервые импортирует модуль, он переводит его содержимое в скомпилированную форму. Файл не содержит машинного кода - это внутренний полускомпилированный код Python, готовый для исполнения интерпретатором Python. Поскольку такой файл не требует большого количества проверок, необходимых для файла с чистым исходным кодом, выполнение быстрее начинается и быстрее идет.
Благодаря этому каждый последующий импорт будет выполняться быстрее, чем интерпретация исходного текста с нуля.
Python может проверить, был ли изменен исходный файл модуля (в этом случае файл pyc будет перестроен) или нет (когда pyc может быть запущен сразу). Поскольку этот процесс полностью автоматический и прозрачный, Вам не нужно об этом думать.