我遇到了以下错误:
type object 'datetime.datetime' has no attribute 'datetime'
错误发生在以下一行代码:
date = datetime.datetime(int(year), int(month), 1)
有人知道这个错误的原因吗?
我使用 from datetime import datetime
导入了 datetime,如果这有帮助的话。
谢谢
我遇到了以下错误:
type object 'datetime.datetime' has no attribute 'datetime'
错误发生在以下一行代码:
date = datetime.datetime(int(year), int(month), 1)
有人知道这个错误的原因吗?
我使用 from datetime import datetime
导入了 datetime,如果这有帮助的话。
谢谢
Datetime是一个模块,允许处理日期、时间和日期时间(所有这些都是数据类型)。这意味着datetime
既是顶级模块,也是该模块中的一种类型。这很令人困惑。
你的错误可能是基于模块的混淆命名以及你或你正在使用的模块已导入了它。
>>> import datetime
>>> datetime
<module 'datetime' from '/usr/lib/python2.6/lib-dynload/datetime.so'>
>>> datetime.datetime(2001,5,1)
datetime.datetime(2001, 5, 1, 0, 0)
但是,如果你导入datetime.datetime:
>>> from datetime import datetime
>>> datetime
<type 'datetime.datetime'>
>>> datetime.datetime(2001,5,1) # You shouldn't expect this to work
# as you imported the type, not the module
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: type object 'datetime.datetime' has no attribute 'datetime'
>>> datetime(2001,5,1)
datetime.datetime(2001, 5, 1, 0, 0)
from datetime import datetime
。针对Python 3.3版本
from datetime import datetime, timedelta
futuredate = datetime.now() + timedelta(days=10)
你应该将这个模块导入到它自己的别名中。
import datetime as dt
my_datetime = dt.datetime(year, month, day)
相对于其他解决方案,上述方法具有以下优点:
my_datetime
而不是date
可以减少混淆,因为在datetime
模块中已经有一个date
了(datetime.date
)。datetime
)不会互相遮蔽。您应该使用
date = datetime(int(year), int(month), 1)
或更改
from datetime import datetime
to
import datetime
from datetime import datetime
然后只需要按照以下代码编写:
date = datetime(int(year), int(month), 1)
import datetime
然后只有您才能编写:
date = datetime.datetime(int(2005), int(5), 1)
我遇到了相同的错误,也许你已经仅使用import datetime
导入了模块,因此请将from datetime import datetime
更改为仅import datetime
。在我将它改回去后,它对我起作用了。
form
是打错了吗?看起来应该是from
。 - Yunnoschimport time
import datetime
from datetime import date,timedelta
避免编写以下内容:
from datetime import datetime
datetime.datetime.function()
解决方案1:
import datetime
datetime.datetime.function()
方案二:
from datetime import datetime
datetime.function()
我发现这样做要容易得多
from dateutil import relativedelta
relativedelta.relativedelta(end_time,start_time).seconds
datetime
中最令人沮丧和愚蠢的方面之一。编写该程序的人应该进行一些重构。 - Nav