关键字的参数

时间:2018-04-04 07:44:03

标签: python robotframework

假设我有一个带有一些参数的用户定义的关键字:

*** Keywords ***
Add
  [Arguments]    ${foo}  ${bar}=${42}
  [return]       ${${foo} + ${bar}}

在python上下文中没有,我有一个参数字典,并希望用它来调用关键字:

from robot.libraries.BuiltIn import BuiltIn
def foo():
    args = {'foo' : 0}
    BuiltIn.run_keyword("Add", args) # does not work, of course

此方法失败,因为机器人将参数作为列表(正确命名或排序)。我不能简单地将所有参数作为列表传递给这里,因为机器人不会忽略未在关键字中声明的参数。

我需要做的是

  • 查找关键字
  • 迭代其论点
  • 从词典
  • 创建参数列表

使用python API可以实现吗?

1 个答案:

答案 0 :(得分:0)

您希望unpacking *用于列表,**用于dicts:

def my_func(a, b, c='c', d='d'):
    print(a, b, c, d)

my_func('a', 'b')
>> a b c d

my_list = ['A', 'B']
my_dict = {'c': 'C', 'd': 'D'}
my_func(*my_list, **my_dict)
>> A B C D