0

我定义了以下装饰器:

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 对象,只是arg1and arg2。有没有办法解决这个问题,以便可以按照我想要的方式调用它?

4

1 回答 1

0

您可能能够弄清楚如何将它硬塞到像这样的装饰器中,以便最终在您正在谈论的场景中得到您想要的绑定方法,但实际上,这可能是您学习的好机会关于描述符协议

于 2012-12-21T01:33:39.780 回答