Всем привет, сегодня мы разберём как создать собственный модуль языка Python, как, например, модуль math и другие сторонние библиотеки, не входящие в состав встроенных.
Любой модуль является простым файлом с разрешением *.py, поэтому для работы с ним нам понадобится создать 2 файла. Один из них - наш будущий модуль, а во втором мы будем проверять проделанную работу. Для примера первый из них будет называться my_module.py.
1) Работа с файлом модуля
Этот файл будет содержать в себе все функции, которые вам будет проще использовать импортируя из него. Такое может произойти если вы пишите большой проект, а в разных файлах одни и те же функции встречаются несколько раз.
Как и при создании обычной функции, запись задается служебным словом def, после которого идет имя функции в snake-case (способ записи имени, который использует только строчные буквы и знаки нижнего подчёркивания) и скобки, где передаются необходимые для работы функции переменные. Мы будем разбирать на примере решения квадратного уравнения, поэтому функция принимает на вход три параметра: значения a, b и c.
def square_equation (a, b, c):
Далее внутри функции создаются переменные дискриминанта, проверка его знака и последующие действия по нахождению корней.
При возвращении строки используется метод format, который подставляет значения переменных в фигурные скобки внутри строки. Внутри этих скобок есть запись, означающая что в общем на подставляемое значение выделяется 4 символа, из которых 2 - для дробной части.
2) Проверка работы модуля
Во втором нашем файле будет проверка работы модуля. Первым, как обычно, идем импорт библиотек, но в данном случае мы будем импортировать прямо из нашего файла.
from my_module import square_equation as se
Данная запись означает, что мы произвели импорт функции square_equation из библиотеки my_module и назначили этой функции имя se внутри этого файла.
После сделаем 3 контрольных проверки функции, подставив значения аргументов a, b и c под все возможные случаи решения квадратного уравнения:
- 2 корня
- 1 корень
- корней нет.
print (se(1 , -5 , 9 ))
print (se(1 , -4 , 4 ))
print (se(1 , -3 , -4 ))
На выходе мы получаем следующий результат:
А это значит, что наша функция, импортированная из другого модуля, работает успешно.
Полный код программы
def square_equation (a, b, c):
D = b ** 2 - 4 * a * c
if D < 0 :
return "Корней нет"
elif D == 0 :
x = -b / (2 * a)
return "Единственный корень уравнения: {:4.2f}" .format(x)
else :
x1 = (-b - D ** 0.5 ) / (2 * a)
x2 = (-b + D ** 0.5 ) / (2 * a)
return "Корни уравнения: {:4.2f}, {:4.2f}" .format(x1, x2)