Модуль — это файл, который содержит код для выполнения определенной задачи. Модуль может содержать переменные, функции, классы и т.д. Для создания модуля следует создать файл с расширением .py
. Для импортирования модуля в Python используется ключевое слово import. Стандартная библиотека Python содержит более 200 модулей.
Что такое модуль?
Модуль — это файл, который содержит код для выполнения определенной задачи. Модуль может содержать переменные, функции, классы и т.д.
Давайте создадим модуль. Напишите следующий код и сохраните его как файл example.py:
1 2 3 4 5 6 |
# Модуль в Python def add(a, b): result = a + b return result |
Здесь мы определили функцию add() внутри модуля с именем example. Функция принимает два числа и возвращает их сумму.
Импорт модулей в Python
Мы можем импортировать определения из одного модуля в другой или в интерактивный интерпретатор Python. Для этого используется ключевое слово import. Чтобы импортировать наш ранее определенный модуль example, нужно использовать следующую команду:
1 |
import example |
Эта строка кода не импортирует имена функций, определенных в модуле example, напрямую в нашу программу. Эта строка импортирует только имя модуля example.
Используя имя модуля, мы можем получить доступ к функциям модуля с помощью точки .
. Например:
1 |
addition.add(4,5) # результатом будет 9 |
Примечания:
Python имеет множество стандартных модулей, с которыми вы можете ознакомиться в документации Python.
Стандартные модули можно импортировать так же, как мы импортируем наши собственные (пользовательские) модули.
Импорт модулей из Cтандартной библиотеки Python
Стандартная библиотека Python содержит более 200 модулей. Предположим, мы хотим получить значение числа Пи. Для этого нужно импортировать модуль math, а затем использовать вызов math.pi
. Например:
1 2 3 4 5 |
# Импортируем модуль math из Стандартной библиотеки Python import math # Используем math.pi для получения значения числа Пи print("The value of pi is", math.pi) |
Результат:
The value of pi is 3.141592653589793
Переименование модуля в Python
В Python мы также можем переименовать импортируемый модуль. Например:
1 2 3 4 |
# Импортируем модуль, а затем переименовываем его import math as m print(m.pi) |
Результат:
3.141592653589793
Здесь мы переименовали модуль math в m. В некоторых случаях это может сэкономить нам время при наборе кода.
Обратите внимание, что после переименования имя math не распознается в нашей области видимости. Следовательно, math.pi
не будет работать, а m.pi
— будет работать.
from … import в Python
Мы можем импортировать определенные имена из модуля, не импортируя модуль целиком. Например:
1 2 3 4 |
# Импортируем только pi из модуля math from math import pi print(pi) |
Результат:
3.141592653589793
Здесь мы импортировали только объект pi
из модуля math.
Импортируем все имена из модуля
В Python мы можем импортировать все имена (определения) из модуля, используя следующую конструкцию:
1 2 3 4 |
# Импортируем все имена из модуля math from math import * print("The value of pi is", pi) |
Здесь мы импортировали все определения из модуля math. Импорт всего содержимого модуля не является хорошей практикой в программировании. Это может привести к дублированию определений идентификаторов. Это также может затруднить читаемость кода.
Встроенная функция dir() в Python
В Python мы можем использовать функцию dir() для вывода списка всех имен функций в модуле. Например, ранее мы определили функцию add() в модуле example. Мы можем использовать функцию dir() с модулем example следующим образом:
1 |
dir(example) |
Результат:
['__builtins__',
'__cached__',
'__doc__',
'__file__',
'__initializing__',
'__loader__',
'__name__',
'__package__',
'add']
Здесь мы видим отсортированный список идентификаторов (вместе с функцией add()
) модуля example. Имена, начинающиеся со знака подчеркивания, являются атрибутами Python (не пользовательские), ассоциируемые с модулем.
Например, атрибут __name__
содержит имя модуля:
1 2 3 |
import example example.__name__ |
Результат:
example
Все имена, определенные в нашем текущем пространстве имен, можно узнать с помощью функции dir(), просто не указывая аргументы:
1 2 3 4 5 6 |
a = 1 b = "hello" import math dir() |
Результат:
['__builtins__', '__doc__', '__name__', 'a', 'b', 'math', 'pyscripter']