我创建了一个使用多种功能的程序。一些要求从其他函数的返回值输入,而有些则接受在另一个模块中定义的输入。我的代码按预期工作。但是我觉得代码的组织是不正确的,特别是我必须创建一个名为“ 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)
理想地,当使用许多不同功能时,我想以最佳的方式来控制脚本的流程。只要有可能,我都希望遵循最佳实践,然后再在代码中添加自己的才能。