Python 是否可以将多个值传递给单个参数

Python 是否可以将多个值传递给单个参数,python,pexpect,Python,Pexpect,我有一个定义如下的函数: def cmd_success(cmd_session, success_cmd, failure_cmd=None): .... .... for command in commands: success = cmd_success(session, str_prompt, ['Invalid', 'Error', Incomplete') if success == False: print "Invalid Com

我有一个定义如下的函数:

def cmd_success(cmd_session, success_cmd, failure_cmd=None):
    ....
    ....
for command in commands:
    success = cmd_success(session, str_prompt, ['Invalid', 'Error', Incomplete')
    if success == False:
        print "Invalid Command"
        sys.exit()
我在这里调用该函数:

for command in commands:
success = cmd_success(session, str_prompt, 'Invalid')
if success == False:
    print "Invalid Command"
    sys.exit()
目前,它只检查“无效”字符串,但我想检查“错误”、“不完整”。由于许多原因,我无法更改cmd_success函数中的代码,所以我正在寻找一种在函数调用期间执行此操作的方法

大概是这样的:

def cmd_success(cmd_session, success_cmd, failure_cmd=None):
    ....
    ....
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
TypeError:get(['Invalid'、'Error'、'complete'])作为模式,必须是:、pexpect.EOF、pexpect.TIMEOUT中的一个
它是否可以查找所有三个字符串?参数为'failure_cmd',它只需要1个字符串,但我希望传递所有3个字符串,因此如果找到其中任何一个,success设置为false

谢谢
Damon

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

试试这个:

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

您是一次需要全部3个参数,还是一次需要其中一个?是的,函数参数可以是任何值,包括列表。但是你也必须迭代这个列表才能得到你想要的。将整个错误回溯到跟踪中,我想您会看到cmd_success内部失败,因为您试图将列表视为字符串。如果不修改
cmd_success
以处理多个值,您将无法执行此操作。当它现在显然只期望一个值时,您希望它怎么做?某种魔法?基于心灵感应的自我修改代码?想想看:我有一个食谱,需要一个大鸡蛋,稍微搅拌一下。我希望它能在我扔进一打鸡蛋的时候起作用。@koralart,invalid命令要么无效,要么错误,要么不完整。因此,如果它看到其中任何一个,它将返回false。所以,我认为它需要逐个检查每个字符串。你能演示一下
cmd\u success()
如何使用它的
failure\u cmd
参数吗?就在mate:)我应该试试。。工作起来很有魅力@肯·怀特,某种魔法?“基于心灵感应的自我修改代码?”。。。。看它的“|”