python如何将字符串作为函数参数名?

def sss(ads):
    print ads
test={'ads':"8888"}
for key in test:
    sss(key=test[key])#这样是错误的,如何实现类似功能

如上,在字典的关键字与函数参数名是一样的情况下,想要将字典中的关键字作为函数的参数名使用是否能够实现?

阅读 14.3k
5 个回答
def sss(a, b):
    print(a + b)

test = {'a': '11', 'b': '22', 'c': '33'}
dict = {}
for key in sss.__code__.co_varnames:
    if test.get(key) != None:
        dict[key] = test[key]

sss(**dict)
def sss(a=None, b=None, ads=None, d=None):
    print(a, b, ads, d)

test={'ads':"8888"}

for key in test:
    sss(**test)

使用双星号即可.

单*是解list, 双星是解dict

看不懂你想说啥,你不是只是想把值传进去吗,sss方法并没有定义参数key,你传key=test[key]当然会报错

def sss(ads):
    print ads
test={'ads':"8888"}
for key in test:
    sss(test[key])
推荐问题