AttributeError:“datetime”模块没有属性“strptime”
- 2025-04-15 09:19:00
- admin 原创
- 25
问题描述:
这是我的Transaction
课程:
class Transaction(object):
def __init__(self, company, num, date):
self.company = company
self.num = num
self.date = datetime.strptime(date, "%Y-%m-%d")
当我尝试实例化它时:
tr = Transaction('AAPL', 600, '2013-10-25')
我收到以下错误:
self.date = datetime.strptime(date, "%Y-%m-%d")
AttributeError: 'module' object has no attribute 'strptime'
我该如何解决这个问题?
解决方案 1:
如果我不得不猜测的话,你会这样做:
import datetime
在代码顶部。这意味着你必须这样做:
datetime.datetime.strptime(date, "%Y-%m-%d")
来访问该strptime
方法。或者,你可以将 import 语句更改为:
from datetime import datetime
并按原样访问它。
datetime
制作该模块的人也给他们的班级datetime
命名:
#module class method
datetime.datetime.strptime(date, "%Y-%m-%d")
解决方案 2:
使用正确的调用:strptime
是类的类方法datetime.datetime
,它不是模块中的函数datetime
。
self.date = datetime.datetime.strptime(self.d, "%Y-%m-%d")
正如 Jon Clements 在评论中提到的那样,有些人会这样做from datetime import datetime
,将datetime
名称绑定到datetime
类,并使您的初始代码起作用。
要确定您将来会面临哪种情况,请查看您的导入语句
import datetime
:这就是模块(这就是您现在所拥有的)。from datetime import datetime
:就是这个类。
解决方案 3:
我遇到了同样的问题,但这不是你说的解决方案。所以我把“from datetime import datetime”改成了“import datetime”。之后,借助“datetime.datetime”,我可以正确获取所有模块。我想这就是这个问题的正确答案。
解决方案 4:
根据用途不同,值可能会有所不同。
import datetime
date = datetime.datetime.now()
date.strftime('%Y-%m-%d') # date variable type is datetime
日期变量的值必须是字符串::
date = '2021-09-06'
datetime.datetime.strptime(date, "%Y-%m-%d")
str(datetime.datetime.strptime(date, "%Y-%m-%d")) # show differently
解决方案 5:
其他人提到的解决方案是正确的。但对我来说,问题在于另一个库导入了 datetime 模块,并覆盖了我导入的 datetime 类。以下是tsai库的示例:
from datetime import datetime
from tsai.all import *
这将给你错误:'module' object has no attribute 'strptime'
。
在这种情况下,只需翻转导入的顺序,或者不要导入所有内容(即使文档这样做):
from tsai.all import *
from datetime import datetime
解决方案 6:
import datetime
self.date = datetime.datetime.strptime(date, "%Y-%m-%d")
扫码咨询,免费领取项目管理大礼包!