类型错误:'datetime.datetime'对象的描述符'date'不适用于"int"对象



我刚刚遇到这个问题,在Google首页找不到一个合理的答案。这与2011年的问题类似,但对于较新版本的Python,会导致不同的错误消息。

是什么导致了这些TypeError?

整数

import datetime
my_date = datetime.datetime.date(2021, 3, 2) 

导致错误:

TypeError: descriptor 'date' for 'datetime.datetime' objects doesn't apply to a 'int' object
字符串

同样,用字符串替换整数也会给出相同的错误:
import datetime
my_date = datetime.datetime.date("2021", "3", "2") 

给:

TypeError: descriptor 'date' for 'datetime.datetime' objects doesn't apply to a 'str' object

列表和使用列表给出相同的错误:

import datetime
my_date = datetime.datetime.date([2021, 3, 2]) 

结果:

TypeError: descriptor 'date' for 'datetime.datetime' objects doesn't apply to a 'list' object

同样,使用from datetime import datetimedatetime.date将分别导致以下错误消息:

TypeError: descriptor 'date' for 'datetime' objects doesn't apply to a 'int' object
TypeError: descriptor 'date' for 'datetime' objects doesn't apply to a 'str' object
TypeError: descriptor 'date' for 'datetime' objects doesn't apply to a 'list' object

解决方案:

import datetime
my_date = datetime.date(2021, 3, 2)

from datetime import date
my_date = date(2021, 3, 2)

为什么?

问题是datetime.datetime.date()datetime.datetime对象上的方法。我们把datetime模块和datetime.datetime类搞混了。

我们真正要找的是datetime.date()构造函数。

相关内容

  • 没有找到相关文章

最新更新