gpt4 book ai didi

python - 从 Python 中的 ctype 回调函数访问 self?

转载 作者:太空宇宙 更新时间:2023-11-04 01:38:05 31 4
gpt4 key购买 nike

我希望能够从回调函数内部调用 self。

class MyClass():
def myMethod(self):
def myCallback(p1):
print "Callback called!"
# here I want to do something with self!

CALLBACK_x = ctypes.WINFUNCTYPE(ctypes.c_void_p, ctypes.c_uint32)
somedll.setCallback(CALLBACK_x(cbFileRefDone), 0)

未使用回调函数的 DWORD 参数。

如何访问 self?

最佳答案

self 应该已经在 myCallback 中可用。由于它是在函数内部创建的,因此它可以访问封闭函数的变量,包括 self。这些变量实际上与内部函数一起存储在所谓的闭包中,因此即使在封闭函数返回后它们仍然存在。这是一个最小的例子:

class C(object):
def f(self):
def g():
print self
return g

c = C()
g = c.f()
g()
>>> <__main__.C object at 0x02AED1F0>

关于python - 从 Python 中的 ctype 回调函数访问 self?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7891585/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com