You probably have already solved this, but this is what I did.
I just starting to learn how to use Python for rigging, and I actually came across this issue a couple of days ago while figuring out a foot rig for my auto rigger.
Something like this seems to work, take the matrix of object, it seems to contain values after constraints, then take the position/location part from there:
# get position after constraint (cube has position constraint)
m = bpy.data.objects["Cube"].matrix_world
# get position from matrix
pos = m.translation
# third object for testing
bpy.data.objects["axis"].location = pos
Not sure if this is the recommended way to do this, but it worked so far for me.