gpt4 book ai didi

python - datetime 对象是否需要深度复制?

转载 作者:太空狗 更新时间:2023-10-29 17:13:11 25 4
gpt4 key购买 nike

所以我前一周通过运行实验注意到,尽管它是一种高级语言,但您可以通过像这样分配变量来复制变量:

a = 5    
b = a
print(b) # 5
b = 3
print(b) # 3
print(a) # 5

...如果您以相同的方式对待字典或可能的列表,它就会崩溃!前几周我在我的代码中创建了一个错误,认为字典以相同的方式工作。发现要制作一个正确的深度副本,你需要去:

b = dict(a)

无论如何,我正忙于处理日期时间对象,并且像处理整数一样处理它们,现在开始有点担心这是否合适。这一切似乎有点随意,哪里有效,哪里无效,我是否每次都必须运行一个实验来检查它的行为?可以猜测字符串可能像整数一样工作,但不确定行为在哪里发生变化。

可以看到某人has asked about这适用于 PHP 但适用于 Python 我倾向于认为 datetime 对象的任何赋值都将是一个适当的深拷贝,并且永远不会意外地弄乱原始变量。有人有确切消息么?

最佳答案

因为所有 available types in the datetime module被记录为不可变(紧跟在类的文档之后):

Objects of these types are immutable.

你不应该担心这个。

对日期时间实例的操作将返回一个新实例,因此不会影响引用前一个实例的任何其他名称。

您可能想查看 PM 2Ring 提供的链接,该链接解释了 facts and myths about how names and values work .这应该可以阐明您对名称的任何困惑。

关于python - datetime 对象是否需要深度复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43072149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com