Python 中 TypeError: 'datetime.datetime' object is not callable 错误
当我们覆盖 datetime
模块中的内置类或方法时,会出现 Python“TypeError: 'datetime.datetime' object is not callable”。 要解决该错误,需要解决变量和内置类之间的名称冲突。
下面是一个产生上述错误的示例代码
from datetime import datetime, date
# 👇️ override built-in date() class by mistake
date = datetime.today()
result = date(2022, 9, 24)
# ⛔️ TypeError: 'datetime.datetime' object is not callable
print(result)
我们通过将其设置为日期时间对象来隐藏内置日期类,并尝试将其作为函数调用。
但是,现在
date
变量存储的是datetime
对象,而不是内置类。
要解决该错误,需要确保不要覆盖 datetime
模块中的任何内置方法和类。
from datetime import datetime, date
# ✅ Renamed variable
my_date = datetime.today()
result = date(2022, 9, 24)
print(result) # 👉️ "2022-09-24"
重命名变量应该可以解决问题。
该错误的另一个常见原因是试图将日期时间对象当作函数来调用。
from datetime import datetime
my_date = datetime.today()
# ⛔️ TypeError: 'datetime.datetime' object is not callable
my_date() # 👈️ remove extra set of parentheses
要解决该错误,我们必须弄清楚如何为变量分配日期时间对象而不是函数或类,或者删除额外的括号集。
from datetime import datetime, date
my_date = datetime.today()
print(my_date) # 👉️ "2022-12-29 14:52:21.292423"
当我们打算访问对象的属性时,可能会错误地尝试调用 datetime
对象。
开始调试的最佳方法是调用 dir()
函数,将导入的模块传递给它。
from datetime import datetime
# 👇️ [...'astimezone', 'combine', 'ctime', 'date', 'day',
# 'dst', 'fold', 'fromisocalendar', 'fromisoformat',
# 'fromordinal', 'fromtimestamp', 'hour', 'isocalendar',... ]
print(dir(datetime))
如果将模块对象传递给 dir()
函数,它会返回模块属性名称的列表。
我们可以使用点表示法来访问日期时间对象支持的任何属性。
from datetime import datetime
d = datetime(2022, 11, 24, 9, 30, 0)
# 👇️ 24/11/22
print(d.strftime("%d/%m/%y"))
print(d.year) # 👉️ 2022
print(d.month) # 👉️ 11
或者,如果我们不打算访问属性,则可以删除方括号。
相关文章
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串
在 Python Pandas 中使用 str.split 将字符串拆分为两个列表列
发布时间:2024/04/24 浏览次数:1124 分类:Python
-
本教程介绍如何使用 pandas str.split() 函数将字符串拆分为两个列表列。
在 Pandas 中将 Timedelta 转换为 Int
发布时间:2024/04/23 浏览次数:231 分类:Python
-
可以使用 Pandas 中的 dt 属性将 timedelta 转换为整数。
Python 中的 Pandas 插入方法
发布时间:2024/04/23 浏览次数:112 分类:Python
-
本教程介绍了如何在 Pandas DataFrame 中使用 insert 方法在 DataFrame 中插入一列。
使用 Python 将 Pandas DataFrame 保存为 HTML
发布时间:2024/04/21 浏览次数:106 分类:Python
-
本教程演示如何将 Pandas DataFrame 转换为 Python 中的 HTML 表格。
如何将 Python 字典转换为 Pandas DataFrame
发布时间:2024/04/20 浏览次数:73 分类:Python
-
本教程演示如何将 python 字典转换为 Pandas DataFrame,例如使用 Pandas DataFrame 构造函数或 from_dict 方法。
如何在 Pandas 中将 DataFrame 列转换为日期时间
发布时间:2024/04/20 浏览次数:101 分类:Python
-
本文介绍如何将 Pandas DataFrame 列转换为 Python 日期时间。