【问题标题】:Arguments of a keyword关键字的参数
【发布时间】:2018-04-04 07:44:02
【问题描述】:

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

*** 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 实现吗?

【问题讨论】:

    标签: python robotframework


    【解决方案1】:

    您需要unpacking * 用于列表,** 用于字典:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-17
      • 2011-02-14
      • 1970-01-01
      • 1970-01-01
      • 2018-06-10
      • 2013-08-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多