相关疑难解决方法(0)

为什么在快速调用时,Python类的id不是唯一的?

我在python中做了一些事情(使用python 3.3.3),我遇到了令我困惑的事情,因为我的理解课每次被调用时都会得到一个新的id.

让我们说你在一些.py文件中有这个:

class someClass: pass

print(someClass())
print(someClass())
Run Code Online (Sandbox Code Playgroud)

以上返回相同的id,这让我感到困惑,因为我正在调用它所以它不应该是相同的,对吧?当连续两次调用同一个类时,python是如何工作的?当我等待几秒钟时,它给出了不同的id,但是如果我像上面的例子一样,它似乎不会那样工作,这让我感到困惑.

>>> print(someClass());print(someClass())
<__main__.someClass object at 0x0000000002D96F98>
<__main__.someClass object at 0x0000000002D96F98>
Run Code Online (Sandbox Code Playgroud)

它返回相同的东西,但为什么呢?我也注意到范围,例如

for i in range(10):
    print(someClass())
Run Code Online (Sandbox Code Playgroud)

当快速调用类时,python是否有任何特殊原因?我甚至不知道python是这样做的,还是可能是一个bug?如果它不是一个bug,有人可以向我解释如何修复它或一个方法,以便每次调用方法/类时它生成一个不同的id?我很困惑这是怎么做的,因为如果我等了,它确实会改变,但如果我尝试两次或更多次调用同一个类则不会.

python class python-3.x

32
推荐指数
2
解决办法
9888
查看次数

标签 统计

class ×1

python ×1

python-3.x ×1