【发布时间】:2012-12-21 01:24:38
【问题描述】:
我定义了以下装饰器:
def loop_callback(func):
"""Only works in programs with a single main loop. Can call .sameThread
to access the original unwrapped function directly"""
@wraps(func)
def wrapped_func(*args, **varargs):
if mainThread==threading.current_thread():
print("We are in the loop thread")
func(*args, **varargs)
else:
print("In another thread")
loop.add_callback(lambda: func(*args, **varargs))
wrapped_func.orig=func
return wrapped_func
这个想法是你应该能够通过调用myObject.myFunction.orig(arg1, arg2) 之类的东西来访问原始函数。不幸的是,orig 不会收到 self 对象,只有 arg1 和 arg2。有什么办法可以解决这个问题,以便可以按照我想要的方式调用它?
【问题讨论】: