AttributeError:'模块'对象没有属性'strptime'

这是我的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 

而当我试图运行datefunction:

 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' 

我该如何解决这个问题?

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

 import datetime 

在你的代码的顶部。 这意味着你必须这样做:

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

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

 from datetime import datetime 

并按原样访问它。

创builddatetime模块的人也将其命名为他们的类datetime

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

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

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

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

要确定您面临的情况(将来),请查看您的import报表

  • import datetime :这是模块(这是你现在的)。
  • from datetime import datetime :这是类。