Ahm*_*lah 0 python dictionary object
我在这个问题的一个答案中找到了这个说法。
这是什么意思?如果语句是“Python 从不隐式复制字典对象”,我不会有问题。我相信元组、列表、集合等在 python 中被认为是“对象”,但问题中描述的字典问题不会出现在它们身上。
链接答案中的陈述比应有的范围更广。隐式副本在 Python 中很少见,在它们发生的情况下,Python是否正在执行隐式复制是有争议的,但它们确实发生了。
绝对正确的是,名称分配的默认规则不涉及副本。默认情况下,
a = b
Run Code Online (Sandbox Code Playgroud)
不会复制被分配给的对象a。这个默认值可以被自定义的本地命名空间对象覆盖,这可能在 usingexec或带有__prepare__方法的元类时发生,但这种情况极为罕见。
至于隐式拷贝确实发生的情况,首先想到的是multiprocessing标准库模块到处执行隐式拷贝,这也是multiprocessing造成很多混乱的原因之一。名称分配以外的分配也可能涉及副本;a.b = c、a[b] = c和a[b:c] = d可能都涉及副本,具体取决于是什么a。a[b:c] = d尤其可能涉及复制d的数据,尽管它通常不涉及生成作为 的副本的对象d。
| 归档时间: |
|
| 查看次数: |
183 次 |
| 最近记录: |