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