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:)我应该试试。。工作起来很有魅力@肯·怀特,某种魔法?“基于心灵感应的自我修改代码?”。。。。看它的“|”