파이썬에서 object-method를 일반적인 함수로 내보내고 싶습니다. 개체가 닫힙니다. 다음에 처럼이 잘 작동하고 예상대로 15 인쇄파이썬 : 함수를 객체로 닫는 방법으로 내보내기
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)
. 내가 주석 라인으로 복귀 람다 라인을 대체한다면 다음과 같은 오류를주고 실패합니다
TypeError: m() got multiple values for keyword argument 'self'
나는 functools를 사용하여 람다 식에 의지보다 더 깨끗 것을 이해합니다. 그래서 functools에서 부분 또는 다른 도구를 사용하여이를 수행하는 방법을 알고 싶습니다.
고마워요, 그 작품은 매우 깨끗하게 보입니다. –