Импорт модулей в Python 3
Python, Без категорий | Комментировать запись
Язык программирования Python предоставляет множество встроенных функций. Среди них есть несколько общих функций:
- print() отображает выражение.
- abs() возвращает абсолютное значение числа.
- int() преобразует данные в целое число.
- len() возвращает длину последовательности или коллекции.
Однако этих встроенных функций бывает недостаточно. Чтобы расширить функционал, можно добавить модули.
Модули – это файлы Python с расширением .py, которые содержат код Python. На любой файл Python можно сослаться как на модуль. К примеру, если файл называется hello.py, то модуль будет называться hello. Его можно импортировать в другие файлы Python или использовать в командной строке.
Модули могут определять функции, классы и переменные, на которые можно ссылаться в других файлах .py или через интерпретатор командной строки Python.
В Python модули импортируются с помощью оператора import. При этом код модуля выполняется с сохранением определений, так что текущий файл (или файлы) может использовать их.
Когда Python импортирует модуль по имени hello, интерпретатор сначала просматривает встроенные модули и ищет среди них hello. Если такого модуля нет среди встроенных, интерпретатор ищет файл hello.py в списке каталогов, указанных в переменной sys.path.
Данное руководство научит вас искать и устанавливать модули, импортировать их и создавать для них псевдонимы.
Просмотр установленных модулей
Библиотека Python Standard Library содержит множество модулей, которые обеспечивают доступ к функциональным возможностям системы или предоставляют стандартные решения. Python Standard Library является частью каждой установки Python.
Чтобы убедиться в том, что эти модули доступны, откройте среду разработки Python 3 и запустите интерпретатор Python в командной строке:
python
Читайте также:
Теперь можно запустить оператор import, чтобы убедиться, что требуемый модуль готов к работе:
import math
Поскольку модуль math является встроенным, интерпретатор не вернёт никакого вывода. Это значит, что вам не нужно ничего делать, чтобы запустить этот модуль.
Запустите import и укажите имя модуля, который не поставляется по умолчанию, например matplotlib.
import matplotlib
Если модуль не установлен, команда выдаст ошибку:
ImportError: No module named 'matplotlib'
Теперь нужно отключить интерпретатор Python (клавиши CTRL + D) и установить matplotlib с помощью pip.
pip install matplotlib
После установки модуля попробуйте снова импортировать его.
Импорт модулей
Чтобы получить доступ к функциям модуля, его нужно импортировать с помощью оператора import.
Выражение import состоит из ключевого слова import и имени модуля.
В файле Python это выражение располагается в верхней части кода.
К примеру, чтобы импортировать в программу my_rand_int.py модуль random, который генерирует случайные числа, нужно открыть файл и вставить:
import random
Импортируемый модуль становится доступным в текущей программе в качестве отдельного пространства имен. Это означает, что ссылаться на функцию нужно в точечной нотации ([module].[function]).
Для примера рассмотрим на практике модуль random, который будет работать как функция в следующих вариантах:
- random.randint(): вызывает функцию, которая возвращает случайное число;
- random.randrange(): вызывает функцию, которая возвращает случайный элемент из заданной последовательности.
Создайте цикл for, чтобы увидеть модуль random в работе.
Читайте также: Циклы for в Python 3
Откройте файл my_rand_int.py и добавьте в него:
import random
for i in range(10):
print(random.randint(1, 25))
Эта небольшая программа сначала импортирует модуль random, а затем запускает цикл for, который обрабатывает 10 элементов. Программа будет выдавать случайное целое число в диапазоне от 1 до 25 (эти числа нужно передать функции random.randint() в качестве параметров).
Запустите программу:
python my_rand_int.py
На экране появится 10 случайных чисел в диапазоне 1-25. Например:
6
9
1
14
3
22
10
1
15
9
Если вы хотите использовать функции нескольких модулей, добавьте выражение import для каждого модуля:
import random
import math
Некоторые программы импортируют несколько модулей, просто разделяя их запятыми внутри одного выражения import, но это противоречит PEP 8 Style Guide.
Чтобы использовать второй импортированный модуль, можно добавить в программу константу пи и уменьшить число отображаемых случайных чисел:
import random
import math
for i in range(5):
print(random.randint(1, 25))
print(math.pi)
Сохраните файл и запустите программу. Она вернёт примерно такой результат:
18
10
7
13
10
3.141592653589793
Выражение from… import
Чтобы сослаться на элементы из модуля в пространстве имен вашей программы, используйте выражение from … import. Импортируя модули таким образом, вы можете сослаться на функции по имени, а не через точечную нотацию.
В этой конструкции вы можете напрямую указать, на какие определения ссылаться.
В некоторых программах оператор import ссылается на все определения модуля с помощью звездочки (*), но это не приветствуется в PEP 8.
Импортируйте функцию randint() из модуля random.
from random import randint
Сначала нужно вызвать ключевое слово from и указать название модуля. Затем вызывается ключевое слово import и задаётся требуемая функция.
Благодаря этой функции вам больше ен придётся использовать точечную нотацию (random.randint()), теперь вы можете писать просто randint():
from random import randint
for i in range(10):
print(randint(1, 25))
Программа вернёт примерно такой же вывод.
Конструкция from … import позволяет вызывать функции без точечной нотации.
Псевдонимы модулей
Имена модулей можно настраивать, выбирать для них псевдонимы. В Python для этого существует ключевое слово as.
К примеру, вы можете изменить имя модуля, если вы уже использовали такое имя в другой точке программы или в неё был импортирован другой модуль с таким же именем. Также это позволяет сократить длинное имя модуля до аббревиатуры.
Конструкция выглядит так:
import [module] as [another_name]
Попробуйте изменить имя модуля math в файле программы my_math.py. К примеру, сократите его до m.
import math as m
print(m.pi)
print(m.e)
Теперь на число пи нужно ссылаться как на m.pi, а не как на math.pi.
Для некоторых модулей псевдонимы используются почти всегда. К примеру, в документация модуля matplotlib.pyplot рекомендует называть его просто plt:
import matplotlib.pyplot as plt
Короткие имена модулей удобнее использовать в программах: так проще обращаться с кодом, меньше вероятность допустить ошибку или опечататься.
Читайте также: Визуализация данных Python 3 с помощью matplotlib
Заключение
Импортируя модули, вы получаете доступ к функциям, которые не встроены в Python по умолчанию. Некоторые модули поставляются с Python, другие нужно установить с помощью менеджера pip.
Модули позволяют сделать программу более надёжной и производительной. Вы можете создавать собственные модули.
Tags: Python, Python 3