Python:functools
functools.wraps
decorator 의 wrapper를 원래의 함수인 것처럼 하여, 디버깅과 문서화를 편리하게 합니다.
functools.partial
Boost:Bind와 같은 기능이라고 생각하면 편하다.
def power(base, exponent):
return base ** exponent
def square(base):
return power(base, 2)
def cube(base):
return power(base, 3)
assert square(2) == 4
assert cube(2) == 8
위 코드를 다음과 같이 변환할 수 있다.
from functools import partial
def power(base, exponent):
return base ** exponent
square = partial(power, exponent=2)
cube = partial(power, exponent=3)
assert square(2) == 4
assert cube(2) == 8
See also
References
-
Velog.io_-doondoony-_Python_functools.wraps.pdf ↩