Написать пост

Как написать свой Python-модуль

Аватарка пользователя Елена Капаца

Если вы выделили повторяющийся функционал в отдельный набор функций и хотите стабилизировать код для быстрого подключения, статья для вас.

Обложка поста Как написать свой Python-модуль

Написание Python-модуля может быть полезным, когда нужно повторно использовать код в разных проектах или хочется создать библиотеку собственных функций и классов для облегчения разработки. Если вы кодите на Python на повседневной основе и — о чудо! — выделили повторяющийся функционал в отдельный набор функций, классов, методов и переменных, и хотите “стабилизировать” такой код для последующего быстрого подключения, то статья для вас.

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

Грубо говоря, Python-модуль представляет собой файл с расширением .py, который содержит определения функций, классов и переменных, доступных для использования в других программах. Давайте начнем с создания простого модуля под названием mymodule.

Шаг 1: Создание модуля

Создадим новый файл с именем mymodule.py и откроем его в любимом текстовом редакторе.

Кстати, если вы только начинаете писать код на Python и еще не знаете, в какой программе это делать, то вот моя подборка питонических IDE с хорошим UI / UX.

Здесь вы будете определять функции и классы для вашего модуля mymodule.py.

			def greet(name):
    print("Hello, " + name + "!")

class Person:
    def __init__(self, name):
        self.name = name

    def say_hello(self):
        print("Hello, my name is " + self.name)
		

Так мы определяем:

  • функцию greet(), которая принимает аргумент name и выводит приветствие;
  • класс Person, который имеет конструктор __init__() для установки имени;
  • метод say_hello(), который выводит приветствие с использованием имени объекта класса.

Шаг 2: Использование модуля

Теперь модуль можно использовать его в других программах. Создадим новый файл с именем main.py и импортируем mymodule следующим образом:

			import mymodule
mymodule.greet("Alice")
person = mymodule.Person("Bob")
person.say_hello()
		

Здесь мы используем ключевое слово import и вызываем функцию greet().

API как следующая стадия развития модуля

Если ваш модуль разрастается, становится полноценным проектом и обретает, скажем, динамические данные, то самое время ему стать полноценным API (Application Programming Interface – программный интерфейс приложения). Выражаясь простыми словами, то это следующая стадия развития вашего модуля.

С разработкой полноценных API помогают сервисы вроде swagger.io, который ускоряет подгонку вашего модуля к стандартам RESTful, и создание документации. Но об этом – уже в следующей статье.

Когда в собственном модуле нет необходимости

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

Заключение

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

Напишите в комментариях, какие самописные модули вы используете в работе.

Следите за новыми постами
Следите за новыми постами по любимым темам
3К открытий4К показов