Я создал процедуру, которая использует несколько функций. Некоторые требуют входных данных от возвращаемых значений других функций, а некоторые принимают входные данные, определенные в другом модуле. Мой код работает как задумано. Однако я чувствую, что организация кода не является правильной, в частности, мне пришлось создать функцию под названием «main», которая просто выполняет все другие функции, которые фактически выполняют всю работу (см. Код).
Я хочу знать, имеет ли смысл использовать функцию для управления потоком всех других функций. Хотя он и делает то, что я хочу, я думаю, что важно правильно структурировать код в соответствии с лучшими практиками, чтобы не столкнуться с проблемами и проблемами в будущем, а также другие могут легко его прочитать
Я также пытался не использовать функцию для запуска всех других функций, просто поместил вызовы в самый конец скрипта, но это выглядит просто неловко. Я попытался провести какое-то исследование, но найти «лучшие практики», когда код становится все более сложным и зависит от нескольких входов в одном модуле и других модулях, сложно.
def main(banner, start_year, start_month, end_year, end_month, aggregate):
'''All this function does is store and run the other functions'''
store_sales = store_sales_dataframe(banner, start_year, start_month, end_year, end_month)
query = """select stuff from table"""
a_df = dataframe(query)
files = return_sales_files(banner, start_year, start_month, end_year, end_month)
sales_dfs = csv_to_df(files, b_df, a_df)
final_df = combine_dfs(sales_dfs)
if aggregate:
final_df = aggregate_df(final_df)
export_to_excel(final_df, banner, start_year, start_month, end_year, end_month)
В идеале я хочу наиболее оптимальный способ управления потоком моих сценариев при использовании множества различных функций. Когда бы ни было возможно, я хотел бы следовать лучшим практикам, прежде чем добавлять свой собственный талант в мой код.