Site icon 8HOST.COM

Импорт модулей в Python 3

Язык программирования Python предоставляет множество встроенных функций. Среди них есть несколько общих функций:

Однако этих встроенных функций бывает недостаточно. Чтобы расширить функционал, можно добавить модули.

Модули – это файлы 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, который будет работать как функция в следующих вариантах:

Создайте цикл 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.

Модули позволяют сделать программу более надёжной и производительной. Вы можете создавать собственные модули.