使用变量时未解析的引用

时间:2018-05-26 14:20:53

标签: python function variables

我正在尝试从列表中的函数加入变量,但它表示变量是一个未解析的引用。我已经环顾四周,无法找到任何可以解释为什么会这样的解释。错误在函数的变量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)

1 个答案:

答案 0 :(得分:1)

IPget_ip()内的局部变量。你不能在功能之外使用它;那里不存在。

get_ip()的返回值分配给变量并使用该变量。您也可以将该变量命名为IP。但要明确,这是一个不同的变量。让我们使用一个不同的名称来表明这一点:

ip = get_ip()
list_to_join = [time, nameofhost, hostsname, message, clients_input, ip]