3

这行 python 代码有什么问题(如果有的话):

daterange = [begin + timedelta(n) for n in range((end - begin).days)]

Wherebeginenddatetime.date具有有效值的对象。

我在 Django 视图中使用它来处理一些数据,但是每次调用这个视图时,我都会收到以下错误,并突出显示上述行:

UnboundLocalError at /url/of/error/creating/view/here/
local variable 'range' referenced before assignment

如果我在解释器中执行此行,它可以正常工作,但不知何故它不会在 Django 视图中飞行。我不明白为什么range被解释为变量名。这条线实际上有什么问题,还是代码中的其他东西让 Django 抱怨?

帮助!

4

1 回答 1

11

Django 没有任何问题。range您在同一范围内创建一个局部变量(通过分配一个)。例如range = None,在函数的最后一行中,Python 会考虑range在同一函数的第一行中出现对该局部变量的引用。由于此时没有分配值,因此您会得到一个UnboundLocalError.

于 2011-04-22T21:50:02.647 回答