Модуль — это файл с кодом Python (обычно с расширением .py
), содержащий функции, переменные и классы, которые можно переиспользовать в других программах.
# В файле math_utils.py
def add(a, b):
return a + b
# В другом файле
import math_utils
print(math_utils.add(2, 3)) # Выведет: 5
# В файле string_utils.py внутри пакета my_package
def shout(text):
return text.upper() + "!!!"
# Основной файл
from my_package.string_utils import shout
print(shout("Привет")) # Выведет: ПРИВЕТ!!!
Внутри самого пакета можно использовать относительный импорт:
# Внутри my_package/math_utils.py
from .string_utils import shout
def info():
print(shout("Математические функции готовы"))
Точка .
указывает на текущий пакет. Это полезно при работе с большими структурами.
__init__.py
в пакетеЕсли вы хотите сделать удобный доступ к модулям пакета, настройте __init__.py
:
# Внутри __init__.py
from .math_utils import add
from .string_utils import shout
# Теперь можно просто написать:
from my_package import add, shout
print(add(1, 2)) # 3
print(shout("ура")) # УРА!!!
Пакеты могут содержать другие пакеты. Пример структуры:
project/
└── utils/
├── __init__.py
├── math/
│ ├── __init__.py
│ └── algebra.py
└── string/
├── __init__.py
└── formatter.py
Импорт из вложенного пакета:
from utils.math.algebra import solve_quadratic
*
Можно разрешить импорт всех элементов с помощью *
:
# В __init__.py
__all__ = ["add", "shout"]
from my_package import *
print(add(1, 2))
print(shout("hello"))
Но ⚠️ такой способ считается менее предпочтительным — он может "засорять" пространство имён и снижает читаемость кода.
Для установки внешних библиотек используется pip
:
pip install requests
import requests
response = requests.get("https://api.github.com")
print(response.status_code)
Создайте папку my_utils
с файлами math_helpers.py
и text_helpers.py
. Объедините их в пакет и импортируйте в основной файл.
tools
с двумя модулями: math_tools.py
и string_tools.py
.colorama
и выведите цветной текст в терминале.