关于 python 中的 is 和对象引用的问题

关于 python 中的 is 和对象引用的问题

print(id({'a': 10}), id({'a': 10}))

print({'a': 10} is {'a': 10})

如上代码为什么第一行 id 相同第二行却输出 False?
另外之前学的是 js,内存不是很了解,也就大概知道引用是怎么回事,
以下代码:

print(id({'b': 10}))    ## 3052960

print(id({'b': 10})) ## 3052960

print(id({'b': 10}))    ## 4429216

a = {'b': 10}

print(id(a)) ## 4429216

print(id({'b': 10})) ## 4429296

为什么会出现这种现象,为什么引用一次之后地址就变了?
望大佬指点,先谢过!


回答:

#第一个{'a': 10}执行完id后被释放,第二个{'a': 10}是复用第一个的

print(id({'a': 10}), id({'a': 10}))

#两个{'a': 10}都要执行完is后才能释放 不能被复用

print({'a': 10} is {'a': 10})

#同理,a没有被释放,最后的{'b': 10}不能复用前面的a

print(id({'b': 10})) ## 4429216

a = {'b': 10}

print(id(a)) ## 4429216

print(id({'b': 10})) ## 4429296

以上是 关于 python 中的 is 和对象引用的问题 的全部内容, 来源链接: utcz.com/a/44436.html

回到顶部