Что такое модули Python и для чего они нужны

04 августа 2023

Модуль - это пакет или группа программ, которые написаны экспертом, пользователем или даже новичком, который обычно очень хорош в определенной области, для определенной цели.

Например, модуль Python под названием Quant предназначен для количественного финансового анализа. Quant объединяет два модуля SciPy и DomainModel. Модуль содержит модель предметной области, в которой, помимо прочего, есть биржи, символы, рынки и исторические цены. Модули очень важны в Python. Мы подробно объясним пять модулей:

  • NumPy,
  • SciPy,
  • matplotlib,
  • statsmodels
  • Pandas.

Предположим, что мы хотим вычислить квадратный корень из 3 с помощью функции sqrt(). Однако после выполнения следующих строк кода мы столкнемся с сообщением об ошибке:

Причина в том, что функция sqrt() не является встроенной функцией. При запуске Python встроенную функцию можно рассматривать как существующую. Чтобы использовать функцию sqrt(), нам нужно сначала импортировать математический модуль, как показано ниже:

Чтобы использовать функцию sqrt(), мы должны ввести math.sqrt(), если мы используем команду import math для импорта или загрузки математического модуля. В предыдущем коде функция round() используется для управления количеством десятичных знаков. Кроме того, после выполнения команды dir() мы увидим существование математического модуля, который является последним в выводе, показанном здесь:

Кроме того, когда модуль предустановлен, мы можем использовать import x_module для его загрузки. Например, математический модуль предустановлен. Позже в этой главе мы увидим, как найти все встроенные модули. В предыдущем выводе после выдачи команда dir(), мы также наблюдаем встроенные функции. Есть два символа подчеркивания, до и после встроенного. Этот встроенный модуль отличается от других встроенных модули, такие как математический модуль. Это для всех встроенных функций и других объектов. Опять же, команда dir(builtins) может быть запущена для вывода списка всех встроенных функции, как показано в следующем коде:

Из предыдущего вывода мы находим функцию с именем pow(). Для получения дополнительной информации об этой конкретной функции можно использовать команду help(pow); см. следующее:

Для удобства рекомендуется использовать короткое имя для импортированного модуля. Чтобы сэкономить время на вводе при программировании, мы могли бы использовать команду import x_module в качестве краткого имени, как показано в следующих строках кода:

При вызове определенной функции, содержащейся в импортированном модуле, мы используем короткое имя модуля, как показано в следующих строках кода:

Хотя пользователи могут выбирать любые короткие имена для импортированного модуля, рекомендуется соблюдать некоторые соглашения, такие как использование np для NumPy и sp для SciPy. Еще одно преимущество использования таких часто используемых коротких имен - это сделать наши программы более удобочитаемыми для других. Чтобы показать все функции в импортированном модуле, можно использовать команду dir(module), как показано в следующих строках кода:

Чтобы упростить ваши программы, вы можете использовать from math import *. Это особенно актуально для новичка, который только начал изучать программирование на Python. Давайте посмотрим на следующие строки кода:

Теперь все функции, содержащиеся в модуле, будут доступны напрямую. С другой стороны, если мы используем математику импорта, мы должны добавить имя модуля в качестве префикса, например math.sqrt() вместо sqrt(). После знакомства с Python рекомендуется использовать формат модуля импорта вместо использования импорта из модуля *. Такое предпочтение объясняется двумя причинами:

  • Во-первых, пользователи точно знают, из какого модуля поступает функция.
  • Во-вторых, мы могли бы написать нашу собственную функцию с тем же именем, что и функция, содержащаяся в другом модуле. Имя модуля перед функцией будет отличать его от нашей собственной функции, как показано в следующих строках кода:

Функция del() используется для удаления импортированного/загруженного модуля, который считается ненужным, как показано в следующих строках кода:

С другой стороны, если мы используем from math import *, мы не сможем удалить все функции, просто выполните del math. Мы должны удалить эти отдельные функции отдельно. Следующие две команды демонстрируют такой эффект:

Для удобства мы могли импортировать только несколько необходимых функций. Чтобы оценить европейский опцион колл, необходимо несколько функций, таких как log(), exp(), sqrt() и cdf(). cdf() - функция кумулятивного стандартного нормального распределения. Чтобы сделать эти четыре функции доступными, мы указываем их имена, как показано в следующих строках кода:

Полные коды для ценообразования опционов Блэка-Скоулза-Мертона приведены здесь:

Здесь приведен один пример вызова функции bscall:

Чтобы найти все доступные модули, сначала нужно активировать окно справки. После этого выдаем модули. Результат показан здесь:

Введите имя любого модуля, ключевого слова или темы, чтобы получить помощь по написанию программ Python и использованию модулей Python. Чтобы закрыть эту справочную утилиту и вернуться к интерпретатору, просто введите quit.

Чтобы получить список доступных модулей, ключевых слов, символов или тем, введите модули, ключевые слова, символы или темы. Каждый модуль также содержит однострочное описание того, что он делает; чтобы вывести список модулей, имя или сводка которых содержит заданную строку, например, спам, введите модули спам:

Затем мы выдаем модули в подсказке Python help>, как показано на следующем снимке экрана (для экономии места показана только первая часть):

Чтобы найти конкретный модуль, мы просто набираем модули, а затем имя модуля. Предположим, что нас интересует модуль под названием cmd. Затем мы запускаем модули cmd в окне справки; см. следующий снимок экрана:

Чтобы получить дополнительную информацию о модулях, перейдите в Все программы -> Python x.x -> Документы модуля Python x.x , как показано на следующем снимке экрана:

После нажатия на « Документы модуля Python 3.5» (32-разрядная версия) мы получим дополнительную информацию.