Неразрешенная ссылка при использовании переменной - PullRequest
0 голосов
/ 26 мая 2018

Я пытаюсь присоединить переменную из функции в списке, но она говорит, что переменная является неразрешенной ссылкой.Я осмотрелся вокруг и не могу найти никаких объяснений, которые я могу понять, почему это может быть.Ошибка в переменной 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 голосов
/ 26 мая 2018

IP является локальной переменной внутри get_ip().Вы не можете использовать это вне функции;его там нет.

Назначьте возвращаемое значение get_ip() переменной и используйте эту переменную.Вы также можете назвать эту переменную IP.Но чтобы быть ясно, это другая переменная.Давайте используем другое имя, чтобы сделать это очевидным:

ip = get_ip()
list_to_join = [time, nameofhost, hostsname, message, clients_input, ip]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...