我有一个变量文件,它定义了一个变量,如字典和变量函数中的字典 .
global.py
DEFAULT_VAL=111
TEST_VAR={'key1':{'elem1':'val1', 'elem2':'val2', 'elem3':'val3'}, 'key2':{'elem2':'val2', 'elem3':'val3'}}
def get_elem1_or_default_1(key):
return TEST_VAR[key]['elem1'] if 'elem1' in TEST_VAR[key] else DEFAULT_VAL
def get_elem1_or_default_2(key_dict):
return key_dict['elem1'] if 'elem1' in key_dict else DEFAULT_VAL
从机器人我可以调用变量函数'get_elem1_or_default_1'接受字符串作为键,如下所示:
*** Settings ***
Variables Global.py
${var} Set variable ${get_elem1_or_default_1('key2')}
INFO : ${var} = 111
但是当我尝试调用另一个接受dict作为参数的函数'get_elem1_or_default_2'时,我得到一个错误
${key_dict} Evaluate ${TEST_VAR}['key1']
${var} Set variable ${get_elem1_or_default_2(${key_dict})}
INFO:$ = {'elem2':'val2','elem3':'val3','elem1':'val1'} FAIL:无效的变量名'$ {get_elem1_or_default_2({'elem2':'val2' ,'elem3':'val3','elem1':'val1'})}' .
有可能这样做或出现问题吗?可能还有另一种方式吗?
谢谢!
1 回答
您的“变量函数”只是应该作为关键字而不是变量调用的函数 . 所以你可以保持你的global.py不变,但是这样调用你的函数: