/ / Python диапазон () вградена функция, erm ... неправилно функциониране с Django - python, django, дата-диапазон, вграден

Python range () вградена функция, erm ... неправилно функциониране с Django - python, django, дата-диапазон, вграден

Какво, ако нещо, не е наред с този ред на 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.