【问题标题】:Python - Global name 'date' is not defined [closed]Python - 未定义全局名称“日期”[关闭]
【发布时间】:2014-08-15 15:44:36
【问题描述】:

我在 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'

【问题讨论】:

  • 第一个变体工作得很好。都不适合您的错误消息。
  • 你用的是什么版本的python?另外,看看是否有任何命名空间冲突 - 执行 import datetime as helloworld 然后执行 helloworld.date.today()
  • 哇,谢谢你的反对。我不会在这里问它是否像您想象的那么简单。它对你有用的事实对我来说毫无价值。我知道这应该有效。我在问为什么这在我的情况下不起作用。
  • @Firkamon:它会帮助您实际包含您正在尝试的所有变体的完整回溯。导入datetime 模块时会出现一些常见 错误,并且会混淆它包含的类型和类型上的方法。但是,您的问题标题与您的问题代码相矛盾,并且没有具体的错误消息。这让我们非常难以为您提供帮助,以及您可能会被否决的原因。

标签: python django datetime


【解决方案1】:

你问为什么会发生这种情况...... 所以这是我的尝试,也是我在堆栈溢出中的第一个答案。

对我来说,这似乎是一个范围/命名空间问题。

检查 today() 的范围。 可以从您引用的地方访问吗?

还要检查这个人: http://igotgenes.blogspot.gr/2009/01/class-attributes-and-scoping-in-python.html

还有这个: https://docs.python.org/2/tutorial/classes.html

为了更深入地了解它可能发生的原因。

对不起,但我帮不上忙,因为我没有你的整个项目可供我使用:(

编辑:只是一些错别字。

【讨论】:

    【解决方案2】:

    导入日期时间 变量 = datetime.date.today()

    这按预期工作。

    从日期时间导入日期时间 变量 = datetime.date.today()

    这给出了您描述的错误。那是因为 datetime.datetime.date 是一个方法,而不是一个类。 datetime.date.today 是一种方法,但不是 datetime.datetime.date.today(额外的 datetime 是问题所在)。

    您应该做的第一件事是启动解释器(在命令提示符下键入 python)并只键入前两行。它应该工作。 (如果没有,我可能会重新安装 python)

    如果它确实有效,则问题出在您的代码文件中。您必须有一些东西使这些课程之一黯然失色。由于您没有提供第一个代码示例中的错误消息(这是正确的),我无法猜测它是哪个类......但请仔细查看您的导入语句和导入日期时间之间的变量定义以及何时尝试使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-20
      • 2017-02-03
      • 2013-08-23
      • 2013-11-12
      • 2014-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多