每次发生某个动作时,它都会发出一个信号。该信号被许多不同的对象使用。例如,玩家模型实例将恢复一点生命值,灯笼将减少它们所剩的油。我希望这些模型的实例在信号发出时做出反应并修改它们的数据。但是,我不知道如何在receiver函数中引用实例本身,因为我不能将"self“放在该函数使用的参数列表中。self.oil_left -= 1 #<- self is not defined obviously
self.save()
inspect.ismethod()无法工作,因为该方法尚未绑定到对象实例。type()返回模块级函数和未绑定方法的“函数”。
用例是一个使用方法和函数装饰器的插件框架。我有一个通用的'Model‘类,可以子类来添加功能。插件‘动作’是使用@register_action( name )装饰器在子类中定义的。在导入时调用装饰器函数来注册操作。然后gui在字典中为<