'=='运算符在python中无法正常工作

Dex*_*ter 2 python python-2.7

以下代码在我的脚本中表现不正确:

from ctypes import *
base_addr = c_uint64(0)
base_addr_temp = c_uint64(0)
print base_addr
print base_addr_temp
if(base_addr == base_addr_temp):
    print "val"
Run Code Online (Sandbox Code Playgroud)

我得到的输出:

c_ulong(0L)

c_ulong(0L)

我使用的是python 2.7.3版本.

Tho*_*ley 5

我认为因为这些是对象,你必须按值比较它们:

base_addr.value == base_addr_temp.value
Run Code Online (Sandbox Code Playgroud)

它已经有一段时间,因为我已经做任何Python,但在许多语言中,两个对象只考虑"平等的",如果他们实际上是指同一个对象(即在内存中引用同一位置).