AttributeError:'datetime'模块没有属性'strptime'

时间:2013-10-20 16:45:25

标签: python class python-2.7

这是我的Transaction课程:

class Transaction(object):
    def __init__(self, company, num, price, date, is_buy):
        self.company = company
        self.num = num
        self.price = price
        self.date = datetime.strptime(date, "%Y-%m-%d")
        self.is_buy = is_buy

当我试图运行date功能时:

tr = Transaction('AAPL', 600, '2013-10-25')
print tr.date

我收到以下错误:

   self.date = datetime.strptime(self.d, "%Y-%m-%d")
 AttributeError: 'module' object has no attribute 'strptime'

我该如何解决?

3 个答案:

答案 0 :(得分:280)

如果我不得不猜测,你这样做了:

import datetime

位于代码顶部。这意味着你必须这样做:

datetime.datetime.strptime(date, "%Y-%m-%d")

访问strptime方法。或者,您可以将import语句更改为:

from datetime import datetime

并按原样访问它。

制作datetime module的人也将其命名为class datetime

#module  class    method
datetime.datetime.strptime(date, "%Y-%m-%d")

答案 1 :(得分:13)

使用正确的调用:strptimedatetime.datetime类的类方法,它不是datetime模块中的函数。

self.date = datetime.datetime.strptime(self.d, "%Y-%m-%d")

正如Jon Clements在评论中所提到的,有些人会from datetime import datetimedatetime名称绑定到datetime类,并使您的初始代码正常工作。

要确定您面临的情况(将来),请查看您的导入声明

  • import datetime:这是模块(这就是你现在所拥有的)。
  • from datetime import datetime:那就是上课。

答案 2 :(得分:1)

我遇到了同样的问题,这不是您告诉的解决方案。因此,我将“从datetime导入datetime”更改为“ import datetime”。在那之后 在“ datetime.datetime”的帮助下,我可以正确获取整个模块。我想这是对该问题的正确答案。