单击Python-当一个函数有太多选项时,如何管理该函数中的选项

单击Python-当一个函数有太多选项时,如何管理该函数中的选项,python,click,Python,Click,我正在使用Click-7.1.2,以便通过Pymongo将数据导入MongoDB。因为我是新手,所以我将所有选项放在一个函数main()。然后,我将通过命令行获得这些选项的值,并传递给其他函数 def import_data(processed_data): # do something with the processed_data def filter_time(processed_data, timeline): # filter time and return dat

我正在使用Click-7.1.2,以便通过Pymongo将数据导入MongoDB。因为我是新手,所以我将所有选项放在一个函数
main()
。然后,我将通过命令行获得这些选项的值,并传递给其他函数

def import_data(processed_data):
    # do something with the processed_data


def filter_time(processed_data, timeline):
    # filter time and return data


@click.command()
@click.option('--file', 'filepath', prompt="File pạth please", help='Choose your file path.', type=click.Path(exists=True, path_type=type(json)))
@click.option('--from', 'timeline', help='Choose your datetime.', type=click.DateTime(formats=["%d/%m/%Y"]))
@click.option('--silent', 'silent_mode', help='Disable log.', is_flag=True)
def main(filepath, timeline, silent_mode):
    if silent_mode:
        logger.disabled = True
    result = []
    logger.info("Read file: %s", filepath.decode('utf-8'))
    with open(filepath) as f:
        # return processed_data

    if not timeline:
        import_data(processed_data)
    else:
        import_data(filter_time(processed_data, timeline))
如您所见,
main()
函数现在只有三个选项。当它变得更大,有更多的选项或参数时,我能做什么?当然,并不是每个选项都要在函数的开头添加装饰器。我不认为将一个选项与每个函数分开是有效的,这会导致在变量是
local
变量时很难调用变量。有人遇到过这种情况吗?请帮帮我!我想编写可伸缩且干净的代码


谢谢大家!

您是否考虑过使用switch语句?我不认为这对我的案子有用,特别是,我在看,但如果这不起作用,那么它就不起作用。