十六进制和十进制相同的数字返回不同的id

时间:2019-05-29 07:21:51

标签: python python-3.x

我假设如果使用相同的值,则setImageBitmap在python中的不可变数据类型应该相同

但是如果我存储相同整数的十进制和十六进制版本,此操作将失败:

id()

为什么?

1 个答案:

答案 0 :(得分:4)

这与转换无关,Python解释器每次分配大整数时都会创建对象,因此它们具有不同的对象。解释器启动时会在-1至255之间创建一个数字,并且它们在所有程序中都具有相同的Traceback (most recent call last): File "/home/gavinc/code/eigen_clients/gavinc/a002.py", line 3, in <module> class A: File "/home/gavinc/code/eigen_clients/gavinc/a002.py", line 7, in A e = [i for i in d if i == a] File "/home/gavinc/code/eigen_clients/gavinc/a002.py", line 7, in <listcomp> e = [i for i in d if i == a] NameError: name 'a' is not defined