擅长:python、mysql、java
<p>Python有一种神奇的方法可以在回调中找到method+实例。但当你与另一种语言交流时,那就另当别论了。在</p>
<p>不确定是否可以做得更好:</p>
<ul>
<li>在全局(类实例)字典中注册对象</li>
<li>创建一个回调包装函数来查找id(调用者必须知道),并使用适当的上下文调用方法</li>
</ul>
<p>您可以将所有静态对象保留在类范围内,以获得更干净的解决方案。在</p>
<p>像这样:</p>
<pre><code>class myobject(object):
globdict = {}
id = 0
def __init__(self):
self.a = 999
self.id += 1 # this id will have to be passed to the foreign library
myobject.globdict[self.id] = self
def mycallback(self, items):
print (self.a)
@staticmethod
def real_callback(id,items):
# first parameter is the object, then the "items" argument
# using function-call style (not object)
# id may need to be converted back from `ctypes`
myobject.mycallback(myobject.globdict[id],items)
</code></pre>