我有班级的窗口。这个类有方法的onClick它获取参数控制的ID,该窗口上点击(我不能改变它的工作方式):我要让装饰这将增加我的方法回调栈是否有可能在Python(2.4)中制作这种装饰器?
class Window(SoneBaseWindowClass):
def onClick(self,controlID):
print controlID
。 而onClick方法会在某些控件被点击时调用某些方法。 所以:
class Window(SoneBaseWindowClass):
def __init__(self):
callback_stack = {}
def onClick(self,controlId):
callback = self.callback_stack.get(controlID)
if callback is not None:
callback()
# suppose to add decorated method to a callback_stack
def onclick_decorator(method):
pass
所以我需要做装饰,这将增加一些方法来callback_stack
。使用示例。
class MyWindow(Window):
@onclick_decorator(12345)
def someMethod(self):
print "Gets called when control with id 12345 clicked"
其实这个问题是怎样才能存取权限类从onclick_decorator
自不传递给该方法。所以我可以假设它能够上课,但不知道如何。
我试着让它与类。我很惊讶,但类装饰工程在我的python2.4(在xbmc中构建的那个) – Pol 2012-04-13 16:53:48
但你的方式更先进。我会尽量通过元类来指出我的意思。非常感谢你的配合。为我理解元类将是一个好的开始。 – Pol 2012-04-13 16:57:26