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
повинен бути модулем або пакетом.