我有一个带有** keywords参数的函数,我想遍历列表中的参数以测试该函数是否正常工作。但是,当我给参数提供键,值对(例如“ name = joe”)时,python只会在列表中抱怨语法。因此,我破解了一个将参数封装在引号中并使用exec函数调用参数的解决方案。但是,这似乎很麻烦,有没有更好的方法来用许多测试用例测试功能?这是我的代码:
def function(**keywords):
for key, value in keywords.items():
print(value)
joe = 'joe'
bug='bug'
parameter_list = ('name=joe, insect=bug', 'name=joe')
# test parameters my hacky way
for parameters in parameter_list:
# place to test function
exec('function('+parameters+')', locals(), globals())
如果我不喜欢用这种方法进行测试的原始设计,那么我可以接受其他选择!
谢谢!
最佳答案
您为什么不传递参数字典的元组呢?
def function(**keywords):
for key, value in keywords.items():
print(value)
joe = "joe"
bug = "bug" # if you want an indirection...
parameter_list = ({'name':joe, 'insect':bug}, {'name':joe})
for parameters in parameter_list:
# place to test function
function(**parameters)
关于python - 有没有更干净的方法来测试python3中的长参数列表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53659185/