gpt4 book ai didi

python - 尽管元组是不可变的,但它们以交互模式存储在不同的地址中。为什么?

转载 作者:行者123 更新时间:2023-12-03 09:27:20 25 4
gpt4 key购买 nike

t = (1,2,3)
t1 = (1,2,3)
print(id(t))
print(id(t1))

上述代码行在 Python 中的脚本模式下给出了相同的地址,但在交互模式下它输出了不同的地址。任何人都可以解释原因吗?

最佳答案

在编译脚本时,编译器可以搜索所有等效的元组并生成代码以对所有这些元组使用相同的引用。

但是在交互模式下,它需要保留所有元组的缓存,以便它可以搜索以前的等效元组并返回对它的引用,而不是每次都创建一个新元组。交互式解释器不这样做。

如果您在同一行上分配两个变量,您实际上会得到相同的元组。

t = (1, 2, 3); t1 = (1, 2, 3)

这大概是因为它为每个输入运行编译器,因此它可以进行完整的分析和优化。

关于python - 尽管元组是不可变的,但它们以交互模式存储在不同的地址中。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62327734/

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