Do datetime objects need to be deep-copied?

18 浏览
0 Comments

Do datetime objects need to be deep-copied?

我最近通过进行实验发现,尽管Python是一种高级语言,你可以通过简单地赋值来复制变量,如下所示:

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

然而,如果你对字典或可能是列表采取相同的方式,就会出现问题!我在代码中创建了一个bug,以为字典也是同样的工作方式...后来发现要创建一个正确的深层副本,你需要这样做:

b = dict(a)

无论如何,我正在处理datetime对象,并像处理整数一样对其进行操作,现在开始有点担心这样是否可行。它似乎在哪里起作用,在哪里不起作用都有些随机,我每次都需要运行一个实验来检查它的行为吗?可以猜测字符串可能像整数一样工作,但不确定行为何时改变。

我看到有人在这里问过类似问题,针对PHP,但对于Python来说,我倾向于认为任何对datetime对象的赋值都将是一个正确的深层副本,并且永远不会意外地影响到原始变量。有人确定吗?

0