Python - 全局名称 'date' 未定义
我在Django的视图里使用这个。我完全照着这个链接上的内容做的:http://www.pythonexamples.org/2010/12/23/how-to-get-todays-date-in-python/
也就是:
import datetime
variable = datetime.date.today()
我还试过
from datetime import datetime
variable = datetime.date.today()
但是出现了这个错误:
'method_descriptor' object has no attribute 'today'
2 个回答
首先,我们来看看这段代码:
import datetime
variable = datetime.date.today()
这段代码运行得很正常。
接下来是这段代码:
from datetime import datetime
variable = datetime.date.today()
这段代码就会出现你提到的错误。原因是,datetime.datetime.date是一个方法,而不是一个类。datetime.date.today是一个方法,但datetime.datetime.date.today就不对了(多了一个datetime就是问题所在)。
你首先应该打开一个解释器(在命令提示符下输入python),然后只输入前两行代码。这样应该能正常运行。(如果不行,我建议你重新安装一下python)
如果能正常运行,那问题就出在你的代码文件里。可能是你的代码中有东西覆盖了其中一个类。因为你没有提供第一个代码示例的错误信息(那个是正确的),我也无法猜测是哪一个类出了问题……不过你可以仔细检查一下你的导入语句和在导入datetime之后定义的变量,看看有没有问题。
你问为什么会发生这种情况……所以我来试试,这是我在Stack Overflow上的第一次回答。
我觉得这可能是作用域或命名空间的问题。
检查一下今天的函数(today())的作用域。它在你调用它的地方能访问到吗?
再看看这个链接:http://igotgenes.blogspot.gr/2009/01/class-attributes-and-scoping-in-python.html
还有这个:https://docs.python.org/2/tutorial/classes.html
这样可以更深入地理解可能发生的原因。
抱歉,我帮不了更多,因为我没有你整个项目的代码 :(
编辑:只是几个小错误。