首页 文章

AttributeError:'datetime' module没有属性'strptime'

提问于
浏览
108

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

我该如何解决这个问题?

2 回答

  • 262

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

    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")
    
  • 13

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

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

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

    要确定您面临的案例(将来),请查看您的import语句

    • import datetime :你现在拥有的's the module (that')

    • from datetime import datetime :那是 class .

相关问题