Skip to content

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


  1. Velog.io_-doondoony-_Python_functools.wraps.pdf