在 python 中,我想将对象方法导出为普通函数。该对象将被关闭。如下所示:
from functools import partial
class A(object):
def __init__(self,a):
self.a = a
def m(self,b):
return self.a+b
def exportm(self):
return lambda b,self=self: self.m(b)
#return partial(self.m,self=self)
f = A(10).exportm()
print f(5)
这很好用,可以按预期打印 15。但是,如果我将 return-lambda-line 替换为注释行,它将失败并出现以下错误:
TypeError: m() got multiple values for keyword argument 'self'
我知道使用 functools 比使用 lambda 表达式更干净。所以我想知道如何使用functools中的部分或其他工具来做到这一点。