Python 对象创建行为

问题描述 投票:0回答:1

来自 Java,我很难理解 Python 中对象是如何分配的。 考虑这个 Python 脚本:

x = ("a", "b")
y = ("a", "b")
print(x is y)  # True

x = ["a", "b"]
y = ["a", "b"]
print(x is y)  # False

在类似于Java的语言中,new关键字确保创建具有另一个内存位置的新实例。 但我假设这里的情况并非如此。那么如何解释这种行为呢? Python 中是否有任何类型的不可变类型池来防止重复文字?

我猜想 Python 会跟踪不可变类型,因为相同的情况对于字符串、复数和其他不可变对象返回 True。但如果是这样,为什么还要麻烦呢?

python reference
1个回答
0
投票

Python 中是否有任何类型的不可变类型池来防止重复文字?

基本上是的。

© www.soinside.com 2019 - 2024. All rights reserved.