2016-07-07 32 views
0

関数から戻り値を試しているときにエラーが発生しました 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は、関数のスコープ外の未定義の変数である持っていると思います。