2015-03-31 2 views
0

Я бегу сценарий на сетевой коммутатор:объект ул не отозваны по сценарию

import exsh 

def main(): 

     #result='0' 
     #print result 
     result=exsh.clicmd('show ver', capture=True) 
     print result 
     result=exsh.clicmd('sh switch', capture=True) 
     print result 
     result=exsh.clicmd('sh vlan', capture=True) 
     print result 
     exsh.clicmd('create vlan vlan10 tag 10') 
     result=exsh.clicmd('sh vlan10', capture=True) 
     print result 
     exsh.clicmd=('del vlan10') 
     result=exsh.clicmd('sh vlan', capture=True) 
     print result 

if True: main() 

Когда я бегу, я получить ожидаемый результат, пока он не попадает в линию 18:

Traceback (most recent call last): 
    File "/config/test.py", line 23, in <module> 
    if True: main() 
    File "/config/test.py", line 18, in main 
    result=exsh.clicmd('sh vlan', capture=True) 
TypeError: 'str' object is not callable 

Что становится еще более неожиданным, если я запустить его снова сразу же после этого ошибка сейчас происходит в строке 8:

* X460-24p.2 # run script test.py 
Traceback (most recent call last): 
    File "/config/test.py", line 23, in <module> 
    if True: main() 
    File "/config/test.py", line 8, in main 
    result=exsh.clicmd('show ver', capture=True) 
TypeError: 'str' object is not callable 

Не сюр e как проследить проблему.

ответ

2

Вы устанавливаете exsh.clicmd=('del vlan10') что делает exsh.clicmd строку, то вы пытаетесь вызвать его после того, как с result=exsh.clicmd('sh vlan', capture=True):

In [1]: foo = ('del vlan10') 

In [2]: type(foo) 
Out[2]: str 

In [3]: foo() 
--------------------------------------------------------------------------- 
TypeError         Traceback (most recent call last) 
<ipython-input-3-624891b0d01a> in <module>() 
----> 1 foo() 

TypeError: 'str' object is not callable 
+0

классический ... они, вероятно, следует изменить сообщение об исключении на что-то вроде «Вы уверены, что вы просто Ждут» t назначить 'str' для вызова? ' – user3012759

+0

@ user3012759 .... Не указано ли сообщение об исключении? – miradulo

+0

@ user3012759, если вы посмотрите на ошибку, он показывает вам объект, который вызвал ошибку, и говорит вам, почему, с честью, он довольно явный. –

Смежные вопросы