Пакеты и модули

Настоящие большие программы состоят не из одного файла, а из нескольких. И код из одного файла должен иметь доступ к коду из другого.

Модули - это файлы с кодом на python. Т.е. раньше мы писали как раз модули.

Способы импортирования переменных и функций из других модулей:

import x  # импортируется модуль целиком x.a
from x import a # импортируется конкретное имя из модуля
# при импорте можно изменить имя:
import x as xx
from x import a as aa

Инициализация пакета. При первом импортировании модуля в программе, а его можно импортировать в разных файлах, но один раз при самом первом импортировании запускается весь код модуля. В примере получилось, что один раз вывелось “hello from module1”.

Получается, что в модуле можно написать какой-то инициализирующий код, который должен выполняться только один раз в начале.

Пакеты - это каталоги с модулями. В пакете обязательно должен быть файл __init__.py. Чаше всего этот файл пустой. Но там можно написать код, который выполняется при первом использовании пакета.

При обращении к модулю внутри пакета необходимо разделять имена пакетов и модулей точкой.