2016-07-07 122 views
0

我尝试从函数返回值时收到错误 say's dg未定义您能否告诉出了什么问题?Python 3 - 函数返回值

ipl = socket.gethostbyname(socket.gethostname()) 
seg1,seg2,seg3,seg4=ipl.split(".") 
ip2 = seg1+"."+seg2+"."+seg3+"." 
ip3 = seg1+"."+seg2+"."+seg3+"." 


def getDGW(ip3): 
    cmd = 'ipconfig' 
    p = subprocess.Popen(cmd , stdout=subprocess.PIPE,stderr=subprocess.PIPE) 
    for line in p.stdout: 
     x = re.findall('Default Gateway',str(line)) 
     if x: 
      regex = ip3 + r'[0-9]+' 
      line = re.search(regex, str(line)) 
      if line: 
       print(line.group(0)) 
       dg = line.group(0) 
       return (dg) 

getDGW(ip3) 

print(dg) 

回答

1

你的问题是不是在返回dg,但在声明中print(dg)。你想拥有print(getDGW(ip3))

dg = getDGW(ip3) 
print(dg) 

dg是函数的范围之外未定义的变量。