定义的函数生成未定义的全局名称

时间:2012-12-29 05:18:45

标签: python function

我真的很困惑,我写了这段代码,我试图引入我定义的一些函数,但我没有在某处传递正确的信息。有没有人有任何提示或指示?我不确定如何描述我的问题,但错误是:

Traceback (most recent call last):
  File "./test3.py", line 54, in <module>
    bar()
  File "./test3.py", line 26, in disconnectvpn
    child.sendcontrol('c')
NameError: global name 'child' is not defined

我的修复程序代码如下所示:

def foo():
    child = pexpect.spawn ('./script.sh -arg1')
    child.expect ('(?i)user input:')
    child.sendline ('response')
    return child
def bar(child):
    child.sendcontrol('c')

a = foo()

bar(a)

2 个答案:

答案 0 :(得分:1)

  1. 首先,您需要从connectvpn()返回子对象 抓住它
  2. 您需要在使用之前将其传递给disconnectvpn()

答案 1 :(得分:0)

您只想将函数connectvpn中的子变量传递给函数disconnectvpn()

您只需要保存connectvpn()中返回的变量,然后将该变量用作disconnectvpn函数中的参数。

例如:

a= connectvpn()

print "Establishing connection..." 

time.sleep(10) 

disconnectvpn(a)

告诉我这是不是你的问题。 此致