我需要将几个方法作为回调传递,它们不接受self
参数。我当前的代码是这样的:
def _do_callback(callback, log, *args):
try:
# some common code
callback(*args)
except:
log.error('XX')
class Foo(object):
def __init__(self):
self.log = Log('Foo')
self.cb1_wrapper = lambda x: _do_callback(self.cb1, self.log, x) # I need a function taking one parameter
self.cb2_wrapper = lambda x: _do_callback(self.cb2, self.log, x)
def cb1(self, x):
# some code accessing self
def cb2(self, x):
# some code accessing self
def register_callbacks(self):
register('1', self.cb1_wrapper)
register('2', self.cb2_wrapper)
是否可以编写一些修饰符应用于cb1
和{self.cb1_wrapper
的代码中?在
(我知道标题不理想,请随意编辑)
我不知道decorator,但您可以很容易地编写一个“wrapper function”,它将一个绑定方法到“callback”。像这样的东西:
那个(少校?)缺点是您必须在调用时使用包装:
^{pr2}$当然;只要想想展开的方法应该是什么样子:
相关问题 更多 >
编程相关推荐