正在为 CUCM 处理 AXL 脚本 - 为什么此代码仅处理最后一项?



我正在尝试这段代码,它工作正常:

phone_list = resp['return'].phone
for phone in phone_list:
x = (phone.name)
print(x)
try:
resp = service.removePhone(name = x)    
except Fault:
show_history()

print(x)给出 3 个值:SEP003C53B8F073SEP001FBB3669EASEP003A33B8F041

问题是当我将其传递给下面的try块(removePhone(以删除这3部手机时:它只删除了第一部。

我不知道如何将变量分配给单独的输出项。请让我知道我能做到这一点吗?

这是执行的协议:

>>> phone_list = resp['return'].phone
>>> for phone in phone_list:
...     x = (phone.name)
...     print(x)
...
SEP001B53B8F075
SEP001FCA3669EA
>>>
>>>
>>> try:
...     resp = service.removePhone(name = x)
... except Fault:
...     show_history()
... else:
...     print('Deleted Phone:')
...     print( resp )
...
Deleted Phone:
{
'return': '{C979366C-491D-4F12-B058-ECB789AA326A}',
'sequence': None
}

此代码刚刚从服务器中删除了第二部电话(SEP001FCA3669EA(。第一部手机还在那里。

按照编写代码的方式,for循环不包括调用removePhonetry块。如您所见,只有在循环完成后才能进入try块。

执行循环后,x的值将是循环中的最后一个值。因此,只会删除最后一部电话。

我认为您想为循环的每次迭代执行try块。为此,您必须缩进它,以便它成为循环的一部分:

for phone in phone_list:
x = (phone.name)
print(x)
try:
resp = service.removePhone(name = x)    
except Fault:
show_history()

最新更新