Назад в блог

Написание модулей на Python 3: руководство

Написание модулей на Python 3: руководство

Введение

Python — один из самых популярных языков программирования в мире. Модули являются важной частью кода Python. Модуль — это просто .py файл в контексте Python 3. Это означает, что вы можете называть модулем любой файл Python.

Вы можете получить эти модули из готовой библиотеки. Вы можете ознакомиться со Стандартной библиотекой Python, чтобы узнать больше. Они устанавливаются в вашу систему вместе с Python. В других случаях вы можете установить эти модули с помощью менеджера пакетов Python pip. Но что, если вы хотите создать собственный модуль? В таком случае вы будете рады узнать, что в Python можно создавать свои собственные модули.

В этом подробном руководстве мы опишем шаги, которые необходимо выполнить для написания и импорта модулей в Python 3.

Предварительные требования

Прежде чем начать, вам необходимо убедиться, что у вас установлен Python 3 и настроена среда программирования. Вы можете воспользоваться нашим руководством по установке Python 3 и настройке локальной среды программирования на Ubuntu 16.04, чтобы выполнить установку, если она еще не готова.

Как написать модуль?

Начнем с написания модуля. Вы будете писать модуль точно так же, как и любой другой файл Python. Типичный модуль состоит из определений функций, классов и переменных. Впоследствии вы сможете использовать этот модуль в других программах на Python.

Для наглядности рассмотрим пример. Допустим, мы хотим создать файл с именем hello.py. Позже мы также импортируем его в другой файл. Первым шагом в этом процессе является создание функции. Эта функция будет служить для вывода Hello, World! следующим образом:

На данном этапе запуск команды python hello.py не даст никакого результата. Это связано с тем, что мы еще не дали программе никаких инструкций. Чтобы она заработала, нам нужно импортировать модуль.

Как импортировать модуль?

Для того чтобы импортировать ваш модуль и использовать его функции, вам нужно создать второй файл в той же директории. Мы назовем этот новый файл main_program.py. Причина, по которой оба файла должны находиться в одной директории, заключается в том, что нам нужно указать программе, где искать модуль. Это относится к любому новому пользовательскому модулю, который не является встроенным:

Мы использовали точечную нотацию с именем модуля для вызова функции. Другой способ сделать это — использовать метод from...import. В этом случае мы вызовем функцию как world(), импортировав модуль как from hello import world. Наконец, вы можете запустить команду:

Команда покажет вам следующий вывод:

Добавление переменных в модуль

Далее мы увидим, как добавлять переменные в модуль, поместив определения в модуль:

Впоследствии вы вызовете переменную в функции print(). Мы вызовем ее внутри файла main_program.py :

Запуск программы покажет следующий вывод:

Добавление класса в модуль

Наконец, мы увидим, как можно определить класс в вашем файле для модуля. Продолжая наш пример, мы создадим новый класс с именем Octopus в файле hello.py. Мы также присвоим ему атрибуты name и color. Затем мы добавим функцию, чтобы сделать его пригодным для вывода на печать:

Затем вы должны добавить класс ближе к концу main_program.py файла:

Вы можете вызвать класс с помощью команды hello.Octopus(). Она покажет вам функции и атрибуты класса Octopus в пространстве имен файла. Таким образом, вы можете написать jesse.tell_me_about_the_octopus() в последней строке без вызова hello. Также можно вызвать отдельный атрибут класса без использования hello. Например, вы можете просто запустить jesse.color. При запуске программы вы увидите следующий вывод:

Реализация кода с помощью модулей

Там, где вы можете использовать модули для указания определений, вы также можете использовать их для реализации кода. Допустим, мы хотим реализовать функцию world(). Мы полностью перепишем наш исходный файл hello.py :

Из файла main_program.py мы удалим все, кроме инструкции импорта, оставив следующее:

Запуск основного файла программы даст вам следующий результат, так как программа реализует и выполняет функцию world() :

Как получить доступ к модулю из другого каталога?

Теперь, когда вы знаете, как создавать и изменять модули, вам нужно знать, как получить к ним доступ из другого каталога. Это полезно, когда вам нужно использовать определенный модуль в другом проекте. Существует два способа сделать это, которые мы объясним ниже.

  • Добавление путей

Первый метод заключается в активации пути к модулю с помощью программных файлов, которые уже используют этот модуль. К сожалению, это не означает, что модуль будет доступен во всей системе. Поэтому это считается лишь временным решением. Часто этот способ применяется на этапе разработки проекта.

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

Рассмотрим наш предыдущий пример еще раз. Допустим, файл hello.py находится по пути /usr/sammy/, а файл main_program.py находится в другом каталоге. Сначала мы импортируем модуль hello в файл main_program.py с помощью модуля sys. Затем мы добавим /usr/sammy/ к пути:

Если вы правильно настроили путь, файл main_program.py файл запустится легко и без ошибок. Вы получите тот же результат, что и при нахождении обоих файлов в одной директории.

  • Путь Python

Другой вариант, который вы можете выбрать, — это путь Python. Здесь вы добавляете сам модуль в путь, по которому Python ищет модули и пакеты. Как вы, вероятно, можете догадаться, это делает модуль доступным во всей системе, что делает его жизнеспособным постоянным решением.

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

Следующим шагом является импорт sys модуля:

Затем выведите системный путь:

Теперь в качестве вывода вы увидите системный путь. Там будет как минимум один путь. Однако в среде программирования их может быть несколько. В списке найдите среду, которую вы используете. Имейте в виду, что вы также можете добавить модуль в основной системный путь Python. Вот как это будет выглядеть:

Наконец, переместите файл hello.py в эту директорию и импортируйте модуль следующим образом:

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

Заключение

Цель этого руководства состояла в том, чтобы помочь вам ознакомиться с написанием модулей Python. Это очень похоже на то, как вы пишете любой файл Python .py . Сначала мы поговорили о том, что такое модуль Python и связанные с ним функции. Затем мы узнали, как применять эти определения в других программных файлах на Python. Наконец, мы разобрались с деталями доступности модулей. Теперь вы знаете, как писать модули в Python 3, а также как получать к ним доступ.

Чтобы продолжить расширять свои знания о языке программирования Python, обратитесь к нашему блогу за дополнительными ресурсами:

Приятного программирования!

author

Pranay Kapgate

Автор · CloudSigma

Preslav Dobrev — креативный дизайнер в CloudSigma, сосредоточенный на формировании последовательного корпоративного образа с помощью традиционных и инновационных маркетинговых каналов. Он умело сочетает художественное видение со стратегическим маркетингом, создавая убедительные истории бренда.

Комментарии

Комментариев пока нет. Будьте первым.