为什么Python在交换变量时交换变量id

GLH*_*LHF 1 python swap identify

我认为每个对象都id基于密钥.

>>> a = 10
>>> b = 20
>>> id(a)
1876869280
>>> id(b)
1876869440
>>> a,b=b,a
>>> id(a)
1876869440
>>> id(b)
1876869280
Run Code Online (Sandbox Code Playgroud)

交换变量时,它们的ID也会被交换.如果每个对象都有唯一的id,那么为什么要交换id?交换后我想id(a)并且id(b)会一样.

Ign*_*ams 6

如果每个对象都有唯一的id,那么为什么要交换id?

因为你交换了对象.对象不是ab,他们是1020.a并且b只是代码用来引用这些对象的名称.