gpt4 book ai didi

python - 比较 itertools.product 的 id

转载 作者:行者123 更新时间:2023-11-30 23:30:25 27 4
gpt4 key购买 nike

您如何解释以下代码片段,如果我单独调用 product 上的 id,但 id 相同,则会得到不同的结果如果我将它们相互比较?

>>> from itertools import product
>>> id(product("01"))
41401800
>>> id(product(["0", "1"]))
41402080
>>> id(product("01")) == id(product(["0", "1"]))
True

最佳答案

这没有任何区别,但要解释一下;-):在您的第二种拼写中,这两种产品都是临时对象,在获得其 id 后立即被销毁。 “立即”是 CPython 引用计数的结果。因此,第一个产品使用的内存在构造第二个产品之前被释放,并且相同的内存可能被第二个产品重用。无法保证它会被重复使用,或者不会被重复使用。在您的示例中,它碰巧被重用了。

您的第一个拼写也可以显示此行为 - 但碰巧它没有。

这并不深。这很简单;-)

顺便说一句,你不太可能在第一个拼写中获得相同的 id,因为解释器必须在步骤之间为其他内容分配内存;例如,需要分配内存来显示“41401800”。

关于python - 比较 itertools.product 的 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20602077/

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