关于 python 中的 is 和对象引用的问题
print(id({'a': 10}), id({'a': 10}))print({'a': 10} is {'a': 10})
如上代码为什么第一行 id 相同第二行却输出 False?
另外之前学的是 js,内存不是很了解,也就大概知道引用是怎么回事,
以下代码:
print(id({'b': 10})) ## 3052960print(id({'b': 10})) ## 3052960
和
print(id({'b': 10})) ## 4429216a = {'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}不能复用前面的aprint(id({'b': 10})) ## 4429216
a = {'b': 10}
print(id(a)) ## 4429216
print(id({'b': 10})) ## 4429296
以上是 关于 python 中的 is 和对象引用的问题 的全部内容, 来源链接: utcz.com/a/44436.html