Вступление
В языке программирования Python есть несколькоbuilt-in functions. Среди них несколько общих функций, в том числе:
-
print(), который выводит выражения -
abs(), который возвращает абсолютное значение числа -
int(), который преобразует другой тип данных в целое число -
len(), который возвращает длину последовательности или коллекции
Однако эти встроенные функции ограничены, и мы можем использовать модули для создания более сложных программ.
Modules - это файлы Python.py, состоящие из кода Python. Любой файл Python может быть указан как модуль. Файл Python с именемhello.py имеет имя модуляhello, который можно импортировать в другие файлы Python или использовать в интерпретаторе командной строки Python. Вы можете узнать о создании собственных модулей, прочитавHow To Write Modules in Python 3.
Модули могут содержатьdefine functions,classes иvariables, на которые вы можете ссылаться в других файлах Python.py или через интерпретатор командной строки Python.
В Python доступ к модулям осуществляется с помощью оператораimport. Когда вы делаете это, вы выполняете код модуля, сохраняя рамки определений, чтобы ваши текущие файлы могли использовать их.
Например, когда Python импортирует модуль с именемhello, интерпретатор сначала ищет встроенный модуль с именемhello. Если встроенный модуль не найден, интерпретатор Python затем будет искать файл с именемhello.py в списке каталогов, который он получает из переменнойsys.path.
Из этого туториала Вы узнаете, как проверять и устанавливать модули, импортировать модули и создавать псевдонимы.
Проверка и установка модулей
Существует ряд модулей, встроенных вPython Standard Library, который содержит множество модулей, обеспечивающих доступ к функциям системы или предоставляющих стандартизированные решения. Стандартная библиотека Python является частью каждой установки Python.
Чтобы проверить, что эти модули Python готовы к работе, введите в свойlocal Python 3 programming environment илиserver-based programming environment и запустите интерпретатор Python в командной строке следующим образом:
python
Из интерпретатора вы можете запустить операторimport, чтобы убедиться, что данный модуль готов к вызову, как в:
import math
Посколькуmath является встроенным модулем, ваш интерпретатор должен завершить задачу без обратной связи, вернувшись к приглашению. Это означает, что вам не нужно ничего делать, чтобы начать использовать модульmath.
Давайте запустим операторimport с модулем, который, возможно, у вас не установлен, например с библиотекой 2D-построенияmatplotlib:
import matplotlib
Еслиmatplotlib не установлен, вы получите следующее сообщение об ошибке:
OutputImportError: No module named 'matplotlib'
Вы можете деактивировать интерпретатор Python с помощьюCTRL + D, а затем установитьmatplotlib с помощьюpip.
Затем мы можем использоватьpip для установки модуляmatplotlib:
pip install matplotlib
После его установки вы можете импортироватьmatplotlib в интерпретатор Python с помощьюimport matplotlib, и он завершится без ошибок.
Импорт модулей
Чтобы использовать функции в модуле, вам необходимо импортировать модуль с помощью оператораimport.
Операторimport состоит из ключевого словаimport и имени модуля.
В файле Python это будет объявлено в верхней части кода, под любыми строчками или общими комментариями.
Итак, в программном файле Pythonmy_rand_int.py мы должны импортировать модульrandom для генерации случайных чисел следующим образом:
my_rand_int.py
import random
Когда мы импортируем модуль, мы делаем его доступным для нас в нашей текущей программе в виде отдельного пространства имен. Это означает, что нам придется обращаться к функции в точечной нотации, как в[module].[function].
На практике, на примере модуляrandom, это может выглядеть как такая функция, как:
-
random.randint(), который вызывает функцию для возврата случайного целого числа, или -
random.randrange(), который вызывает функцию для возврата случайного элемента из указанного диапазона.
Давайте создадимfor loop, чтобы показать, как мы будем вызывать функцию модуляrandom в нашей программеmy_rand_int.py:
my_rand_int.py
import random
for i in range(10):
print(random.randint(1, 25))
Эта небольшая программа сначала импортирует модуль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:
my_rand_int.py
import random
import math
Вы можете увидеть программы, которые импортируют несколько модулей с разделителями их запятыми, как вimport random, math, но это не согласуется сPEP 8 Style Guide.
Чтобы использовать наш дополнительный модуль, мы можем добавить в нашу программу константуpi изmath и уменьшить количество выводимых случайных целых чисел:
my_rand_int.py
import random
import math
for i in range(5):
print(random.randint(1, 25))
print(math.pi)
Теперь, когда мы запустим нашу программу, мы получим вывод, который выглядит примерно так, с приближением к пи в качестве нашей последней строки вывода:
Output18
10
7
13
10
3.141592653589793
Операторimport позволяет вам импортировать один или несколько модулей в вашу программу Python, позволяя вам использовать определения, созданные в этих модулях.
Используяfrom…import
Чтобы ссылаться на элементы из модуля в пространстве имен вашей программы, вы можете использовать операторfrom…import. Когда вы импортируете модули таким способом, вы можете обращаться к функциям по имени, а не через точку
В этой конструкции вы можете указать, какие определения будут ссылаться напрямую.
В других программах вы можете увидеть, что операторimport принимает ссылки на все, что определено в модуле, с использованием звездочки (*) в качестве подстановочного знака, ноPEP 8 это не приветствует.
Давайте сначала посмотрим на импорт одной конкретной функцииrandint() из модуляrandom:
my_rand_int.py
from random import randint
Здесь мы сначала вызываем ключевое словоfrom, затемrandom для модуля. Затем мы используем ключевое словоimport и вызываем конкретную функцию, которую хотели бы использовать.
Теперь, когда мы реализуем эту функцию в нашей программе, мы больше не будем записывать функцию в точечной нотации какrandom.randint(), а вместо этого просто будем писатьrandint():
my_rand_int.py
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. Мы изменим имя модуляmath наm, чтобы сократить его. Наша измененная программа будет выглядеть так:
my_math.py
import math as m
print(m.pi)
print(m.e)
В рамках программы мы теперь называем константуpim.pi, а неmath.pi.
Для некоторых модулей обычно используют псевдонимы. matplotlib.pyplot module’s official documentation требует использованияplt в качестве псевдонима:
import matplotlib.pyplot as plt
Это позволяет программистам добавлять более короткое словоplt к любой из функций, доступных в модуле, например,plt.show(). Вы можете увидеть, как этот оператор импорта псевдонима используется в нашем «https://www.digitalocean.com/community/tutorials/how-to-plot-data-in-python-3-using-matplotlib[Как отображать данные в Python 3 Использованиеmatplotlib tutorial] ».
Заключение
Когда мы импортируем модули, мы можем вызывать функции, которые не встроены в Python. Некоторые модули устанавливаются как часть Python, а некоторые мы установим черезpip.
Использование модулей позволяет нам сделать наши программы более надежными и мощными, поскольку мы используем существующий код. Мы также можем использоватьcreate our own modules для себя и других программистов в будущих программах.