Что такое модуль в Python?
Модуль в Python — это файл с программным кодом, содержащий функции, переменные, классы и другие объекты. Использование функциональности одного модуля в другом осуществляется через импорт. Модули имеют расширение .py. Система модулей Python позволяет логически организовать код, группируя его в модули, что упрощает написание и понимание программ. Модуль — это файл с кодом на Python.
Роли модулей
Модули играют три важные роли:
- Многократное использование кода: Модули позволяют хранить код в файлах и подключать его в другие программы.
- Разбиение пространства имён: Модуль — организационная единица высшего уровня. К именам переменных, функциям и другим объектам модуля нельзя обратиться, пока он не импортирован. Это помогает избежать конфликтов имён и упрощает код основной программы.
- Реализация разделяемых служб и данных: Модули удобны для реализации компонентов, используемых в нескольких частях программы, но хранящихся в одном месте, предотвращая дублирование кода.
Категории модулей
Модули в Python можно условно разделить на категории:
- Встроенные модули: Представляют базовые возможности языка. Импортируются автоматически или требуют простого импорта без дополнительной установки. Включают модули общего назначения и платформозависимые модули (например, связанные с операционной системой). Список встроенных модулей можно посмотреть, импортировав модуль sys и выведя sys.builtin_module_names.
- Стандартная библиотека: Обширная коллекция дополнительных модулей и пакетов, расширяющих возможности языка. Входит в состав дистрибутива Python и не требует дополнительной установки. Содержит около 300 модулей, выполняющих множество полезных задач. Список модулей можно посмотреть с помощью функции help(‘modules’). Рекомендуется сначала проверять наличие необходимых функций в стандартной библиотеке, прежде чем писать собственный код.
- Сторонние модули: Модули и пакеты, не входящие в состав Python. Устанавливаются из Python Package Index (PyPI) с помощью утилиты pip. PyPI содержит более полумиллиона пакетов.
- Пользовательские модули: Модули, создаваемые разработчиками. Представляют собой файлы с кодом Python (расширение .py).
Импорт модулей
Для использования модуля его нужно импортировать с помощью оператора import.
Например, для импорта модуля math:
import math
Для использования функции из модуля:
result = math.sqrt(9)
В PyCharm можно нажать Ctrl и кликнуть на имя импортированного модуля, чтобы посмотреть его содержимое. Информацию о конкретной функции можно получить с помощью math.sqrt.__doc__.
Модуль this содержит принципы написания программ от Тима Питерса (Zen of Python).
Можно импортировать отдельные функции или объекты из модуля с помощью оператора from:
from random import randint
random_number = randint(12, 100)
Можно импортировать все из модуля с помощью *, но это не рекомендуется из-за возможных конфликтов имён:
from math import *
Функции, имена которых начинаются с подчеркивания (_), не импортируются при использовании *.
Для избежания конфликтов имён можно использовать псевдонимы:
from math import sqrt as sq
result = sq(9)
Функции dir() и help() позволяют посмотреть содержимое и справку по модулю.
Создание собственных модулей
Создание собственного модуля — это создание файла с кодом Python. Рекомендуется использовать змеиный регистр для имён модулей и писать документацию (docstrings).
Пример создания модуля my_module.py с функцией вычисления площади круга:
def circle_area(radius):
"""Вычисляет площадь круга."""
return 3.14 * radius * radius
Импорт и использование созданного модуля:
import my_module
radius = float(input())
area = my_module.circle_area(radius)
print(area)
Функции, имена которых начинаются с двойного подчеркивания (__), скрываются при импорте с помощью *.
Сторонние модули и pip
Сторонние модули устанавливаются с помощью pip. Например, установка библиотеки Pygame:
pip install pygame
Основные команды pip: install, uninstall, list, show, search.
Модули как скрипты верхнего уровня
Файлы Python могут запускаться как автономные программы или импортироваться как модули. Атрибут __name__ равен ‘__main__’, если модуль запущен как скрипт, и имени модуля — если импортирован. Это часто используется в юнит-тестах.
В этом уроке мы рассмотрели основные аспекты работы с модулями в Python: их определение, категории, импорт и создание собственных модулей, а также использование pip для установки сторонних библиотек. Понимание работы с модулями является важным навыком для любого разработчика на Python.