【发布时间】:2015-11-07 10:03:20
【问题描述】:
当我发现这个有趣的行为时,我正在调试另一个项目:
如果我从 python 可调用对象生成两个 c 可调用对象,它们总是位于非常相似的位置:
from ctypes import *
def foo():
print("foo")
def bar():
print("bar")
c_cm=CFUNCTYPE(c_voidp)
c_foo=c_cm(foo)
print(c_foo)
c_bar=c_cm(bar)
print(c_bar)
运行几次:
<CFunctionType object at 0x7f8ddb65d048>
<CFunctionType object at 0x7f8ddb65d110>
<CFunctionType object at 0x7f40a022e048>
<CFunctionType object at 0x7f40a022e110>
<CFunctionType object at 0x7fa1f1fb1048>
<CFunctionType object at 0x7fa1f1fb1110>
7f 不是有趣的部分,而是 048 和 110。
这是否意味着,我的程序总是位于 ram 中非常相似的位置?
信息:我在 linux 3.18.x
【问题讨论】:
-
顺便说一句,名称
c_voidp已弃用。请在新代码中使用c_void_p。 -
@eryksun 回答,我会投票!
标签: python-3.x ctypes