为什么 Python datetime.replace() 方法返回一个新对象而不是改变现有对象?

问题描述 投票:0回答:1

在 Python DateTime 对象上调用 .replace() 方法会返回 DateTime 对象的新实例,而不是改变现有对象。这似乎是学习该方法时的常见陷阱。

python datetime
1个回答
0
投票
Python 中的

DateTime
对象是不可变的——这是一种有意的设计选择,可提供线程安全性和可预测的行为。这种不可变行为与其他内置 Python 类型(如
strings
tuples
)一致。这是一个强大的功能,有助于防止代码中出现意外的副作用。

这是一个示例用法,

from datetime import datetime

# Create a datetime object
current_date = datetime(2024, 12, 12, 12, 30)

# Correct usage - assign the new value
new_date = current_date.replace(hour=15)

# Now new_date has hour=15, while current_date remains unchanged
print(new_date)        # 2024-12-12 15:30:00
print(current_date)    # 2024-12-12 12:30:00
© www.soinside.com 2019 - 2024. All rights reserved.