1

我正在尝试创建一个函数,在其中使用 datetime 模块中的各种函数,例如 strftime、strptime 和 timedelta。

我觉得我已经尝试了一切,但每次我都被告知:

      4 date = '2012.09.07'
      5 
----> 6 q = net(date)
      7 print q

/Users/fb/Documents/Python_files/test_function.pyc in net(date)
      1 def net(date):
----> 2     b = datetime.strptime(a, '%Y.%m.%d')
      3     c = b.strftime('%d:%m:%y')
      4     return c

NameError: global name 'datetime' is not defined

我读过其他人可能会遇到与我相同的问题,即“它在 python 解释器中有效,但在脚本中无效”。有人可以帮忙吗?

4

1 回答 1

5

您需要在模块datetime中导入对象:

from datetime import datetime

在顶部test_function.py

在您的解释器会话中,您可能已经导入了该对象。

您的整个模块将如下所示:

from datetime import datetime

def net(date):
    b = datetime.strptime(date, '%Y.%m.%d')
    c = b.strftime('%d:%m:%y')
    return c

我替换adate,因为这是函数的实际参数的名称。

请注意,该datetime 模块包含一个datetime class,这是此处唯一导入的内容。如果您还需要访问datetimedelta类,请显式导入这些 ( from datetime import datetime, date, timedelta) 或导入模块并将内容作为属性 ( import datetime、 thendatetime.datetime.strptime()datetime.date.today()等) 引用。

于 2013-09-26T16:20:57.473 回答