相关疑难解决方法(0)

Python中"a is b"和"id(a)== id(b)"有什么区别?

id()内置功能使...

一个整数(或长整数),保证在该生命周期内该对象是唯一且常量的.

is操作,相反,给...

对象身份

那么,为什么有可能有具有相同的两个对象id,但返回Falseis检查?这是一个例子:

>>> class Test():
...   def test():
...     pass
>>> a = Test()
>>> b = Test()
>>> id(a.test) == id(b.test)
True
>>> a.test is b.test
False
Run Code Online (Sandbox Code Playgroud)

一个更令人不安的例子:(继续上述)

>>> b = a
>>> b is a
True
>>> b.test is a.test
False
>>> a.test is a.test
False
Run Code Online (Sandbox Code Playgroud)

然而:

>>> new_improved_test_method = lambda: None
>>> a.test = new_improved_test_method
>>> a.test is a.test
True
Run Code Online (Sandbox Code Playgroud)

python identity

34
推荐指数
1
解决办法
2216
查看次数

标签 统计

identity ×1

python ×1