Skip to content

Modules and Packets

Модулі, пакети

Що таке модуль

Модуль - це файл, що містить Python код, який може містити функції, класи, змінні, інші модулі, а також виконуваний код.

Модулі використовуються для структурування коду та організації функцій, щоб їх можна було повторно використовувати в інших програмах або модулях.

Модулі можуть об'єднуватись у пакети і, далі, у бібліотеки. Мають розширення .py

Як отримати ім'я модуля

Назва модуля доступна у його глобальній змінній __name__. Якщо модуль не імпортований, а запущений як скрипт, то __name__ встановлюється у значення "__main__".

Як Python знаходить модулі при імпорті

При імпортуванні модулів інтерпретатор Python шукає їх у директоріях і архівах, список яких доступний для читання і модифікації як змінна path вбудованого модуля sys. За замовчуванням sys.path складається з директорії зі скриптом, вмісту змінної середовища PYTHONPATH та стандартного розташування модулів, яке специфічне для конкретної платформи та інтерпретатора.

Що таке пакет

Summary

Пакет - каталог у файловій системі, в якому знаходиться файл __init__.py.

Модулі можуть об'єднуватись у пакети. Пакет - це колекція модулів. (Але також це об'єкт.)

Пакет в Python - це спосіб організації модулів в ієрархічну структуру. Пакет може містити один або декілька модулів. Пакети використовуються для структурування великих проектів та організації коду в групи пов'язаних модулів. Зазвичай, модулі представлені у вигляді файлів, а пакети - каталогів у файловій системі. Щоб каталог був пакетом, в ньому повинен знаходитися файл __init__.py, який виконується при імпортуванні пакету.

Імпорт

У Python ключове слово import використовується для того, щоб зробити код у одному модулі доступним для використання в іншому.

Вирази import здійснюють пошук у списку шляхів, які знаходяться у змінній sys.path. Цей список визначає, де Python шукатиме модулі та пакети для імпортування. Ці шляхи включають поточний каталог, каталоги, зазначені у змінних середовища та інші місця, які вказані в конфігурації Python.

Коли виконується оператор import, Python перевіряє кожен шлях у sys.path, починаючи з першого і закінчуючи останнім, для знаходження модуля або пакета з вказаним ім'ям. Якщо модуль знайдений, він імпортується у програму. Якщо жоден із шляхів не містить потрібного модуля, то генерується виняток ModuleNotFoundError.

При імпорті модуля Python виконує весь код у ньому. При імпорті пакета Python виконує код у файлі пакета __init__.py, якщо такий існує. Усі об'єкти, визначені у модулі або __init__.py, стають доступними для імпортування.

Види імпортів - Імпорт модуля - import math. Це найпоширеніший вид імпорту. Щоб використати його функції та класи використовують точкову нотацію - math.pi або math.pow - Імпорт конкретної функції або класу з модуля - from math import pi - Імпорт псевдоніма - import math as mt- імпортувати модуль та надати йому короткий псевдонім (alias), щоб зменшити кількість написаного коду - Імпорт усіх елементів модуля - from math import * - імпортує всі функції та класи з модуля без потреби вказувати їх окремо. Цей спосіб не рекомендується через можливість конфліктів імен. - Відносний імпорт - from . import greece

Конструкція import package.item

При використанні оператора from package import item, item може бути пакетом, модулем або будь-яким ім'ям, описаним у пакеті. При використанні оператора import package.item, item повинен бути модулем або пакетом.