Python: Справка по UnboundLocalError: локальная переменная, на которую ссылаются до назначения - PullRequest
2 голосов
/ 13 февраля 2010

Я продолжаю получать эту ошибку для части моего кода.

Traceback (most recent call last):
File "./mang.py", line 1688, in <module>
files, tsize = logger()
File "./mang.py", line 1466, in logger
nl = sshfile(list, "nl")
UnboundLocalError: local variable 'sshfile' referenced before assignment

Я не поднял код, потому что он переходит туда-сюда между функциями. Мне интересно, может кто-нибудь сказать мне, почему Python выплевывает эту ошибку? sshfile это не переменная, это класс.

1 Ответ

1 голос
/ 13 февраля 2010

Возможно, вы не импортировали файл, содержащий определение sshfile, или вам нужно указать имя класса с именем пакета.Это зависит от того, как вы его импортировали.

Из какого пакета он поставляется?Где это определено?


Обновление

Для всех, кто читает это, после обсуждения в комментариях оказалось, что проблема заключалась в том, что имя sshfile далее использовался в функции как имя переменной, например:

class sshfile:
    pass

def a():
    f = sshfile() # UnboundLocalError here
    sshfile = 0

a()

Решение состоит в том, чтобы не использовать имя переменной, которое скрывает имя класса, которое вам нужно использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...