Как грамотно организовать данные для функции?
В моем модуле есть процедура, выполняющая создание прописи. Она принимает несколько аргументов - это данные, различные при каждом запуске программы. Но есть ещё данные по типу межстрочного интервала, размера страницы прописи и т.д. То есть те данные, которые являются как бы константами, но если вдруг понадобиться начать создавать прописи другого размера (то есть для другого проекта; другой кейс), было бы удобнее просто изменить лишь этот параметр, вместо переписывания кода.
Вот данная функция
def make_prescription(font_name, lang, save_path):
# ____________________________________________________
sheet_size = (2480, 3508)
up_margin = 190
bottom_margin = 50
line_height = 2
letter_min_size = 75 # Данные "костанты"
letters_sets = {
"eng": "abcdefghijklmnopqrstuvwxyz",
"rus": "абвгдеёжзийклмнопрстуфхцчшщъыьэюя",
}
# ____________________________________________________
# Алгоритм создания прописи
pass
Где лучше хранить значения sheet_size, ..., letters_sets? Оставить в теле функции, вынести в начало модуля, в аргументы, в файл какой-нибудь или есть решение получше?
Ответы (1 шт):
В данном сценарии лучше всего на мой взгляд подошёл бы какой-нибудь файл конфигурации. Например, в виде json-файла, из которого ваш модуль читал бы словарь с набором параметров.
В принципе, есть и специальные библиотеки для работы с конфигурационными файлами, но так в общем json довольно удобен и понятен как для того, кто будет его редактировать вручную (в любом текстовом редакторе), также его довольно просто читать и обрабатывать в программе на питоне .