如何找到Python/Django模型对象的内存地址?

int*_*tar 0 python django django-models

一个普通的物体,我可以用

o.__repr__() 
Run Code Online (Sandbox Code Playgroud)

看到类似的东西

'<__main__.A object at 0x9d78fec>'
Run Code Online (Sandbox Code Playgroud)

但是,比方说,Django用户只会返回

<User:bob>
Run Code Online (Sandbox Code Playgroud)

如何查看其中一个的实际地址,或比较两个这样的模型对象是否实际上是同一个对象?

Bri*_*ian 7

id()将返回对象的标识(通常实现为地址),这对于存在于同一时间点的两个对象是唯一的.然而,检查两个对象是否相同的显而易见的方法是使用为此明确设计的运算符:is

即.

 if obj1 is obj2: 
     # Objects are identical.
Run Code Online (Sandbox Code Playgroud)