Какво, ако нещо, не е наред с този ред на Python код:
daterange = [begin + timedelta(n) for n in range((end - begin).days)]
Където begin
и end
сте datetime.date
обекти с валидни стойности.
Аз използвам това в Джанго за обработка на някои данни, но всеки път, когато се вижда, че се получава, получавам следната грешка с посочената по-горе линия:
UnboundLocalError at /url/of/error/creating/view/here/
local variable "range" referenced before assignment
Ако изпълня тази линия вътре в преводача, тя работи добре, но по някакъв начин не се движи в Джанго. Не разбирам защо range
се тълкува като име на променлива изобщо. Има ли всъщност нещо нередно с този ред или е нещо друго в кода, който прави Джанго да се оплаче?
Помогне!
Отговори:
11 за отговор № 1Нищо не е наред с Джанго. Създавате локална променлива range
в същия обхват (чрез задаване на един). Например range = None
в последния ред на една функция прави Python да обмисли появата на range
в първия ред на същата функция, препратка към тази локална променлива. Тъй като в този момент не е определена стойност, вие получавате UnboundLocalError
.