使用可选参数调用函数

时间:2018-05-04 12:05:52

标签: python python-3.x

我有一个使用必需参数和一些可选参数的脚本。用这些可选参数调用函数的最佳方法是什么?

现在我有这些if,但我很确定必须有更好的方法来处理这种情况。否则,如果不是4个可选参数而是100,那我会怎么做(不好的做法,只是为了这个例子)?每个人都使用if吗?

def get_data(table, db='postgres', host='localhost', user='postgres', password=''):
....
....
....

kwargs = {}
if args.db:
    kwargs['db'] = args.db
if args.host:
    kwargs['host'] = args.host
if args.user:
    kwargs['user'] = args.user
if args.password:
    kwargs['password'] = args.password


data = get_data(args.table, **kwargs)

1 个答案:

答案 0 :(得分:1)

for key in 'db host user password'.split():
    val = getattr(args, key)
    if val:
        kwargs[key] = val