2016-07-07 4 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 является неопределенной переменной за пределами области видимости функции.

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