str对象不能在scrip上调用

2024-10-03 02:32:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在网络交换机上运行一个脚本:

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

不知道如何追踪问题。你知道吗


Tags: inpytestconfigtruemainshline
1条回答
网友
1楼 · 发布于 2024-10-03 02:32:34

设置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

相关问题 更多 >