我正在尝试从列表中的函数加入变量,但它表示变量是一个未解析的引用。我已经环顾四周,无法找到任何可以解释为什么会这样的解释。错误在函数的变量IP上。任何人都可以用简单的方式帮助和解释吗?
def get_ip():
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
try:
# doesn't even have to be reachable
s.connect(('10.255.255.255', 1))
IP = s.getsockname()[0]
except:
IP = '127.0.0.1'
finally:
s.close()
usersip = IP
print(IP)
return IP
get_ip()
list_to_join = [time, nameofhost, hostsname, message, clients_input, IP,] #Errors when I try to include the time_at_start variable
delimiter = '&&'
datajoined = delimiter.join(list_to_join)
答案 0 :(得分:1)
IP
是get_ip()
内的局部变量。你不能在功能之外使用它;那里不存在。
将get_ip()
的返回值分配给变量并使用该变量。您也可以将该变量命名为IP
。但要明确,这是一个不同的变量。让我们使用一个不同的名称来表明这一点:
ip = get_ip()
list_to_join = [time, nameofhost, hostsname, message, clients_input, ip]