Найти - Пользователи
Полная версия: UnboundLocalError: local variable referenced before assignment при добавлении ключей, значений в словарь инициализированный вне функции
Начало » Python для новичков » UnboundLocalError: local variable referenced before assignment при добавлении ключей, значений в словарь инициализированный вне функции
1
Imarden
Добрый день!
Получаю ошибку UnboundLocalError: local variable referenced before assignment при добавлении ключей, значений в словарь инициализированный вне функции

Сам код находится тут:
https://github.com/patsevanton/postgrestune/blob/master/advice.py

Что может быть? Как лучше поправить код?
Вроде инициализирую словарь вне функций, но не могу в него добавить ключ, значение.
rami
У вас две переменные priority_advice — первая глобальная, определяется в 7 строке кода, а вторая — локальная, определяется в 25 строке кода:
 for category,priority_advice in advices.iteritems():
Так, вот на эту локальную переменную ругается, что она используется в 21 строке кода, раньше, чем определяется.

Замените в 25 и 26 строке кода переменную priority_advice на другое имя, например, prior_advice и всё заработает.


Кстати, в последних версиях Python у dict нет метода iteritems(), есть items()
Imarden
rami
Кстати, в последних версиях Python у dict нет метода iteritems(), есть items()
Спасибо.
И как обычно делают обратную совместимость с Python например версии 2.6

PEHDOM
Imarden
И как обычно делают обратную совместимость с Python например версии 2.6
обычно никак, потому как никому нафик не надо. Но если очень хочеться то либо пишеться два кода под разные версии либо можно использовать six https://pythonhosted.org/six/
вот такой код:
 import six
for item in six.iteritems(dictionary):
    # code here
будет работать в обеих версиях.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB