AttributeError: 'datetime' 模块没有属性 '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

当我尝试运行 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'

我该如何解决?

原文由 Michael 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 966
2 个回答

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

 import datetime

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

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

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

 from datetime import datetime

并按原样访问它。

制作 datetime 模块 的人也将他们的 类命名为 datetime

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

原文由 user2555451 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

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


正如 Jon Clements 在评论中提到的,有些人做 from datetime import datetime ,这会将 datetime 名称绑定到 —d7a9af9cf6c0b61ca6f123235e- datetime 和你的初始代码类。

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

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

原文由 Thomas Orozco 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题