Пакет из нескольких файлов
Пакет — это папка с модулями. math был одним модулем и одним файлом. В bakery файлов больше одного, и сама папка — это пакет. Ничего не устанавливается, файл с данными не открывается. Вы по-прежнему импортируете имя. Разница в том, что теперь это имя указывает на папку. Имя папки — то, что вы импортируете, и каждый файл внутри сохраняет своё.
def heat():
return "warm"
Это файл bakery/oven.py. Функция heat возвращает слово warm, но не печатает его. Если запустить файл отдельно, экран будет пустым. Строка, которая показывает warm, лежит в другом файле. Функция, которую ни разу не вызвали, ничего не пишет.
📊 Папка и строка импорта
| Часть | Что делает |
|---|---|
| bakery/__init__.py | пустой файл, который отмечает папку как пакет |
| bakery/oven.py | heat возвращает warm и сама ничего не печатает |
| from bakery import oven | точка соединяет папку и модуль |
from bakery import oven
print(oven.heat())
На экране появится warm. Точка соединяет bakery и oven. Косая черта на этом месте — не импорт, и программа останавливается ещё до запуска. Эта остановка называется SyntaxError. Строки с косой чертой в этой программе нет. init.py может оставаться пустым; heat в него класть не нужно. None тоже не выводится: косая черта останавливает программу раньше. Вызов — это oven.heat(). heat во втором файле не висит отдельно. Импорт даёт вам oven, и heat остаётся на oven.
Следующая страница — библиотека в комплекте. Эта страница только собирает модули в одну папку.
Папка с модулями
Один oven.py ничего не показывает. Другой файл показывает warm. Точка соединяет bakery и oven. init.py может быть пустым. Следующая страница — библиотека в комплекте.
🧠 Проверьте Свои Знания
Проверьте Свои Знания
Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему
📝 Инструкции
- Внимательно прочитайте каждый вопрос
- Выберите лучший ответ на каждый вопрос
- Вы можете пересдавать тест столько раз, сколько захотите
- Ваш прогресс будет показан вверху