次のデコレータを定義しました。
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
自己オブジェクトを受け取ることはありませarg1
んarg2
。これを修正して、私が望むように呼び出すことができるようにする方法はありますか?