Введение
Язык программирования Python поставляется с различными встроенными функциями. Среди них несколько общих функций, включая:
print()
, которая выводит выраженияabs()
, которая возвращает абсолютное значение числаint()
, которая преобразует другой тип данных в целое числоlen()
, которая возвращает длину последовательности или коллекции
Однако эти встроенные функции ограничены, и мы можем использовать модули, чтобы создавать более сложные программы.
Модули – это файлы Python с расширением .py
, состоящие из кода Python. Любой файл Python может быть ссылкой на модуль. Файл Python с именем hello.py
имеет имя модуля hello
, который может быть импортирован в другие файлы Python или использован в интерпретаторе командной строки Python. Вы можете узнать о создании собственных модулей, прочитав Как писать модули в Python 3.
Модули могут определять функции, классы и переменные, на которые вы можете ссылаться в других файлах Python .py
или через интерпретатор командной строки Python.
В Python модули доступны с помощью оператора import
. При этом выполняется код модуля, сохраняя области определений, чтобы ваши текущие файлы могли использовать их.
Когда Python импортирует модуль с именем hello
, например, интерпретатор сначала ищет встроенный модуль с именем hello
. Если встроенный модуль не найден, интерпретатор Python затем ищет файл с именем hello.py
в списке каталогов, который он получает из переменной sys.path
.
Этот учебник поможет вам проверить наличие и установить модули, импортировать модули и создавать псевдонимы для модулей.
Предварительные требования
Вы должны иметь установленный Python 3 и настроенную среду программирования на вашем компьютере или сервере. Если у вас нет настроенной среды программирования, вы можете обратиться к руководствам по установке и настройке для локальной среды программирования или для среды программирования на вашем сервере, подходящей для вашей операционной системы (Ubuntu, CentOS, Debian и т. д.).
Проверка и установка модулей
Существует ряд модулей, включенных в Стандартную библиотеку Python, которая содержит множество модулей, предоставляющих доступ к функциональности системы или обеспечивающих стандартизированные решения. Стандартная библиотека Python является частью каждой установки Python.
Информация: Для следования примерам кода в этом руководстве откройте интерактивную оболочку Python на вашей локальной системе, запустив команду python3
. Затем вы можете копировать, вставлять или редактировать примеры, добавляя их после приглашения >>>
.
Чтобы проверить, что эти модули Python готовы к использованию, войдите в свою локальную среду программирования Python 3 или среду программирования на основе сервера и запустите интерпретатор Python в командной строке следующим образом:
Из интерпретатора вы можете выполнить оператор import
, чтобы убедиться, что данный модуль готов к вызову, как в следующем примере:
Поскольку math
является встроенным модулем, ваш интерпретатор должен выполнить задачу без отзыва, вернувшись к приглашению. Это означает, что вам не нужно ничего делать, чтобы начать использовать модуль math
.
Давайте выполним оператор import
с модулем, который может быть у вас не установлен, например, с библиотекой для построения 2D-графиков matplotlib
:
Если matplotlib
не установлен, вы получите ошибку вроде этой:
OutputImportError: No module named 'matplotlib'
Вы можете выйти из интерпретатора Python с помощью CTRL + D
, а затем установить matplotlib
с помощью pip
.
Затем мы можем использовать pip
, чтобы установить модуль matplotlib
:
После его установки вы можете импортировать matplotlib
в интерпретатор Python, используя import matplotlib
, и он завершится без ошибок.
Импорт модулей
Чтобы воспользоваться функциями в модуле, вам нужно импортировать модуль с помощью оператора import
.
Оператор import
состоит из ключевого слова import
вместе с именем модуля.
В файле Python это будет объявлено в верхней части кода, под любыми строками шебанга или общими комментариями.
Таким образом, в файле программы Python my_rand_int.py
мы импортируем модуль random
для генерации случайных чисел следующим образом:
Когда мы импортируем модуль, мы делаем его доступным для нас в нашей текущей программе как отдельное пространство имен. Это означает, что нам придется обращаться к функции с помощью точечной нотации, как, например, [module].[function]
.
На практике, на примере модуля random
, это может выглядеть таким образом:
random.randint()
, который вызывает функцию для возврата случайного целого числа, илиrandom.randrange()
, который вызывает функцию для возврата случайного элемента из указанного диапазона.
Давайте создадим for
цикл, чтобы показать, как мы будем вызывать функцию модуля random
в нашей программе my_rand_int.py
:
Эта небольшая программа сначала импортирует модуль random
на первой строке, затем переходит к for
циклу, который будет работать с 10 элементами. Внутри цикла программа будет печатать случайное целое число в диапазоне от 1 до 25 (включительно). Целые числа 1
и 25
передаются в random.randint()
в качестве его параметров.
Когда мы запускаем программу с python my_rand_int.py
, мы получим 10 случайных целых чисел в качестве вывода. Поскольку они случайные, вы скорее всего получите разные целые числа каждый раз, когда запускаете программу, но они будут генерировать что-то вроде этого:
Output6
9
1
14
3
22
10
1
15
9
Целые числа не должны быть меньше 1 или больше 25.
Если вы хотите использовать функции из более чем одного модуля, вы можете сделать это, добавив несколько операторов import
:
Вы можете видеть программы, которые импортируют несколько модулей с разделенными запятыми – как, например, import random, math
, – но это не согласуется с PEP 8 Style Guide.
Чтобы воспользоваться нашим дополнительным модулем, мы можем добавить константу pi
из math
в нашу программу и уменьшить количество выводимых случайных целых чисел:
Теперь, когда мы запускаем нашу программу, мы получим вывод, который выглядит так, с приближенным значением числа пи в качестве последней строки вывода:
Output18
10
7
13
10
3.141592653589793
Оператор import
позволяет импортировать один или несколько модулей в вашу программу на Python, позволяя вам использовать определения, созданные в этих модулях.
Использование from
… import
Для обращения к элементам модуля в пространстве имен вашей программы вы можете использовать оператор from
… import
. Когда вы импортируете модули таким образом, вы можете обращаться к функциям по имени, а не через точечную нотацию
В этой конструкции вы можете указать, на какие определения напрямую ссылаться.
В других программах вы можете видеть, что оператор import
принимает ссылки на все определения в модуле, используя звездочку (*
) как шаблон, но это не рекомендуется в PEP 8.
Давайте сначала рассмотрим импорт одной конкретной функции, randint()
из модуля random
:
Здесь мы сначала вызываем ключевое слово from
, затем random
для модуля. Затем мы используем ключевое слово import
и вызываем конкретную функцию, которую хотим использовать.
Теперь, когда мы реализуем эту функцию в нашей программе, мы больше не будем писать функцию в точечной нотации, как random.randint()
, а вместо этого напишем только randint()
:
При запуске программы вы получите результат, аналогичный тому, который мы получали ранее.
Использование конструкции from
… import
позволяет нам ссылаться на определенные элементы модуля в пространстве имен нашей программы, избегая точечной нотации.
Псевдонимы модулей
Можно изменить имена модулей и их функций в Python с помощью ключевого слова as
.
Вам может понадобиться изменить имя, потому что вы уже использовали то же имя для чего-то еще в своей программе, другой импортированный модуль также использует это имя, или вы можете захотеть сократить более длинное имя, которое вы часто используете.
Конструкция этого оператора выглядит следующим образом:
Давайте изменить имя модуля math
в нашем файле программы my_math.py
. Мы изменим имя модуля math
на m
, чтобы сократить его. Наша измененная программа будет выглядеть так:
Внутри программы мы теперь обращаемся к константе pi
как к m.pi
, а не как к math.pi
.
Для некоторых модулей обычно используются псевдонимы. Официальная документация модуля matplotlib.pyplot
требует использования plt
в качестве псевдонима:
Это позволяет программистам добавить более короткое слово plt
к любой из доступных функций внутри модуля, например, plt.show()
. Вы можете увидеть этот оператор импорта псевдонима в использовании в нашем “руководстве по Как построить график данных в Python 3, используя matplotlib
.”
Заключение
Когда мы импортируем модули, мы можем вызывать функции, которые не встроены в Python. Некоторые модули устанавливаются вместе с Python, а некоторые мы установим через pip
.
Использование модулей позволяет нам делать наши программы более надежными и мощными, так как мы используем существующий код. Мы также можем создавать свои собственные модули для себя и для других программистов, чтобы использовать их в будущих программах.
Source:
https://www.digitalocean.com/community/tutorials/how-to-import-modules-in-python-3