猿问

动态地将参数传递给 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 个参数怎么办?一定会有更好的办法。


潇潇雨雨
浏览 204回答 2
2回答

芜湖不芜

我还建议使用default论点 onpop而不是检查是否存在:thisTitle = kwargs.pop('name', default); 所以你不要同时做 ain和 a pop。if('name' in kwargs):     thisTitle = kwargs.pop('name')变成:thisTitle = kwargs.pop('name', None)除非从字典中删除键是必需的效果,否则使用get而不是更好pop:thisTitle = kwargs.get('name', None)当未提供关键字参数时,您的函数将返回None而不是生成 a 。NameErrorname
随时随地看视频慕课网APP

相关分类

Python
我要回答