Python import: как происходит подключение пакетов и модулей
Python славиться своєю простотою та багатою екосистемою бібліотек. Одним із очевидних плюсів цієї мови слід вважати можливість легко підключати різні модулі та пакети. Це дозволяє розробникам ефективно розширювати функціональність своїх програм. У цій публікації ми ознайомимося, як в Python правильно підключати пакети і модулі, розглянемо відповідні фрагменти коду та рекомендації для практичного застосування.
Модуль — це файл з розширенням .py. У ньому містяться функції, класи та змінні. Завдяки модулям код перетворюється на блоки для вторинного застосування у різних проектах.
Пакет — це колекція модулів, об’єднаних у директорію з файлом __init__.py. За допомогою пакетів можна структурувати модулі за певною ієрархією, що полегшує навігацію та управління залежностями.
Для імпортування модуля необхідно ввести ключове слово import. Погляньмо, як це відбувається на конкретних прикладах.
Припустимо, у нас є вбудований модуль math з декількома математичними функціями.
import math # Використання функції sqrt з модуля math result = math.sqrt(25) print(result) # Вивід: 5.0
Як можна помітити, ми підключили модуль math, що дало нам можливість обчислити квадратний корінь із 25 з використанням функції sqrt.
Іноді зручно імпортувати з модуля лише необхідні елементи, щоб уникнути надмірності.
from math import sqrt, pi # Використання імпортованих елементів напряму result = sqrt(9) print(result) # Вивід: 3.0 print(pi) # Вивід: 3.141592653589793
Тут ми імпортували функцію sqrt та константу pi з модуля math, що дозволяє звертатися до них без префікса math.
Для зручності можна призначити модулю або його елементам псевдонім.
import numpy as np # Застосування функції array з модуля numpy із псевдонімом np arr = np.array([10, 20, 30, 40]) print(arr) # Вивід: [10 20 30 40]
В даному випадку модуль numpy підключений з псевдонімом np, що скорочує запис та покращує читабельність коду.
Використання from module import * дозволяє імпортувати всі елементи модуля, але цей метод не рекомендується через можливі конфлікти імен.
from math import * # Використання функцій без префіксу result = sin(pi / 2) print(result) # Вивід: 1.0
Хоча цей спосіб зручний, тут є ризик отримати перевизначення існуючих або змінних функцій, тому його слід використовувати з обережністю.
Як ми вже знаємо, пакети Python складаються з декількох модулів і можуть включати субпакети. Розгляньмо, як вони імпортуються.
Припустимо, ми маємо пакет mypackage з наступною структурою:
mypackage/ │ ├── __init__.py ├── module3.py └── module4.py
Наявність або відсутність коду у файлі __init__.py не впливає на виконання.
Для підключення модуля вводимо команду import:
import mypackage.module2 # Застосування функції module1 mypackage.module2.my_function()
Як і в попередніх прикладах, виконуємо імпортування:
from mypackage.module3 import MyClass # Генеруємо екземпляр класу з module3 obj = MyClass() obj.method()
from mypackage import module1 as mod1 # Використання функції з module1 з псевдонімом mod1.my_function()
При необхідності всередині пакета можна створити ієрархічні субпакети з власною структурою у зручному форматі.
mypackage/ │ ├── __init__.py ├── module2.py └── subpackage/ ├── __init__.py └── module4.py
Підключення модуля із вкладеного субпакету:
from mypackage.subpackage import module4 # Використання функції з module4 module4.another_function()
Розробник може створити власний модуль чи пакет. Це має сенс з метою покращення структури коду та вторинного застосування його у різних проектах.
Для початку потрібно створити файл з назвою mymodule.py:
# mymodule.py def greet(name): return f"Hello, {name}!"
Тепер використовуємо згенерований модуль в іншому файлі:
import mymodule message = mymodule.greet("Alice") print(message) # Вивід: Hello, Alice!
Створюємо структуру папок:
mypackage/ │ ├── __init__.py ├── greetings.py └── farewell.py
Потім файл greetings.py:
# greetings.py def say_hello(name): return f"Hello, {name}!"
Файл farewell.py:
# farewell.py def say_goodbye(name): return f"Goodbye, {name}!"
Для зручності імпорту у файлі __init__.py може бути код:
#__init__.py from .greetings import say_hello from .farewell import say_goodbye
Використовуємо пакет:
import mypackage print(mypackage.say_hello("Bob")) # Вивід: Hello, Bob! print(mypackage.say_goodbye("Bob")) # Вивід: Goodbye, Bob!
При використанні функції import, Python шукає починає пошук модулів та пакетів у таких місцях:
Ви можете переглянути поточний список директорій пошуку за допомогою команди:
import sys print(sys.path)
import os import sys import numpy as np import requests import mymodule
from math import sqrt, pi
Підключення модулів та пакетів — одна з фундаментальних можливостей мови програмування Python. Завдяки їй можна ефективно організовувати та розширювати свій код. Розуміння різних способів імпорту та дотримання рекомендацій дозволяє створювати легкочитані та ремонтопридатні програми. Використовуйте наведені в цій публікації приклади коду як основу для подальшої роботи. Не бійтеся створювати власні модулі для підвищення модульності та вторинного застосування коду.
Компанія GlobalLogic заявила, що європейський регіон відтепер очолюватиме Юлія Штукатурова, повідомили в DOU. У GlobalLogic Юлія…
Флагманська LLM-модель OpenAI GPT-5 з'явиться вже в липні, як стверджують інсайдери. Модель матиме підтримку відео,…
Функція пам'яті ChatGPT, яка дозволяє звертатися до історії минулих розмов з чат-ботом, тепер стала доступною…
Після шести років обговорень та сотень пропозицій від ком'юніті команда розробників Go офіційно оголосила, що…
Команда Telegram випустила чергове велике оновлення. Адмінам каналів тепер можна надсилати особисті повідомлення, спростилося перемикання…
Таганський суд Москви ухвалив рішення про передачу у власність держави 100% уставного капіталу IT-компанії «Леста…