无论如何将多个值传递给单个参数

Is there anyway to pass multiple values to a single argument

我有一个这样定义的函数:

def cmd_success(cmd_session, success_cmd, failure_cmd=None):
    ....
    ....

我在这里调用那个函数:

for command in commands:
success = cmd_success(session, str_prompt, 'Invalid')
if success == False:
    print "Invalid Command"
    sys.exit()

目前,它只检查 'invalid' 字符串,但我想检查 'Error'、'Incomplete'。由于多种原因,我无法更改 cmd_success 函数中的代码,因此我一直在寻找一种在函数调用期间执行此操作的方法。

像这样:

for command in commands:
    success = cmd_success(session, str_prompt, ['Invalid', 'Error', Incomplete')
    if success == False:
        print "Invalid Command"
        sys.exit()

那行不通,给了我这个:

TypeError: got <type 'tuple'> (['Invalid', 'Error', 'Incomplete' ]) as pattern, must be one of: <type 'basestring'>, pexpect.EOF, pexpect.TIMEOUT

有什么方法可以同时查找所有三个字符串吗?参数是 'failure_cmd',它只需要 1 个字符串,但我想传递所有 3 个字符串,以便找到其中任何一个,成功设置为 false。

谢谢 达蒙

根据其文档,pexpect 将正则表达式作为其模式参数。正则表达式也可能适用于 cmd_success() 模式。

试试这个:

success = cmd_success(session, str_prompt, 'Invalid|Error|Incomplete')