gpt4 book ai didi

Python:不同的对象获得相同的id

转载 作者:太空宇宙 更新时间:2023-11-03 14:39:49 25 4
gpt4 key购买 nike

查看以下 IPython (Python 3.7) session :

In [1]: id('hello')                                                     
Out[1]: 140300950123104

In [2]: id('hello')
Out[2]: 140300963300384

In [3]: 'hello' is 'hello'
Out[3]: True

In [4]: '{} - {}'.format(id('hello'), id('hello'))
Out[4]: '140300946565808 - 140300946565808'

表达式 1 和 2 表示每次初始化字符串 hello 时,它都会获得不同的 id。但是,当在同一个表达式中初始化时,它们似乎获得与表达式 3 和 4 所建议的结果相同的 id。为什么会这样?

最佳答案

这是一个有趣的问题,但在 wtfpython 中有很好的解释。 .

When a and b are set to "hello" in the same line, the Python interpreter creates a new object, then references the second variable at the same time. If you do it on separate lines, it doesn't "know" that there's already hello as an object (because "hello" is not implicitly interned as per the facts mentioned above). It's a compiler optimization and specifically applies to the interactive environment.

不同之处在于,在 IPython 中,事情可能与直接 Python REPL 略有不同,因此这解释了前两个输入中 id 的差异。

关于Python:不同的对象获得相同的id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54293058/

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