python - TypeError:“datetime.datetime”对象的描述符“日期”不适用于“int”对象
问题描述
我刚遇到这个问题,在谷歌首页找不到合理的答案。它类似于2011 中提出的这个问题,但对于较新版本的 Python,这会导致不同的错误消息。
是什么导致这些TypeError
s?
整数
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 datetime
和datetime.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()
构造函数。
推荐阅读
- node.js - code=H10 desc="App crashed" 找不到解决办法
- python - 从服务器下载解析代码并在应用程序中执行:安全?
- json.net - 使用asp net core 2.1返回所有json对象
- r - 对伽玛参数进行 MLE 时得到错误答案
- javascript - 为什么使用 createReadStream() Node.js 时浏览器一直在加载
- c++ - 为什么使用 int、unsinged int 或 size_t 会产生不同的结果?
- php - 从用于创建“过滤器按钮”的表中获取列表
- html - 使用 jQuery 将 id 添加到元素
- java - 当在它之前添加一个 Jlabel 时如何阻止 JButton 改变位置
- nunit - 如何在 Visual Studio 2017 的 Nunit 3 中使用 ITestEventListener