Вступление
В языке программирования 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)
В рамках программы мы теперь называем константуpi
m.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 для себя и других программистов в будущих программах.