动态传递参数给Python中的函数

爱奥尼亚特

我想编写一个代码来检查字典中的键,如果存在则将其设置为函数作为参数。

def myFunction(*args, **kwargs):
    # do stuffs
    if('name' in kwargs):
        thisTitle = kwargs.pop('name')        

    print(thisTitle)
    ...
    return thisTitle

t = {}

if 'name' in t.keys() 
    and 'param1' in t.keys() 
    and 'param2' in t.keys():

    res = myFunction(name      = t['name'], 
                     myparam1  = t['param1'],
                     secondPar = t['param2'])

elif 'name' in t.keys() 
    and 'param1' in t.keys():

    res = myFunction(name=t['name'], 
                     myparam1=t[param1])

elif 'name' in t.keys():
    res = myFunction(name=t['name'])

如果我有 10 个参数怎么办?一定会有更好的办法。

伊霍尔沃罗宁

试试这个:

def myFunction(*args, **kwargs):
    # do stuffs
    if('name' in kwargs):
        thisTitle = kwargs.pop('name')

    print(thisTitle)

    if('param1' in kwargs):
        print(kwargs['param1'])

    if('param2' in kwargs):
        print(kwargs['param2'])
    # ...
    return thisTitle


t = {'name': "same_name"}

myFunction(**t)

t = {'name': 'same_name',
     'param1': 'val1',
     'param2': 'val2'}

myFunction(**t)

输出:

$ python3 stack.py 
same_name
same_name
val1
val2

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章