Programming/Python
[Programming/Python] functools의 partial
scii
2020. 3. 11. 22:28
함수를 만들어서 넘길 때 lambda보다는 partial을 자주 사용한다.
간단한 예)
from functools import partial
def sum(a, b):
print(a + b)
f = partial(sum, 55)
f(1)
# 결과
56
lambda와 partial의 차이점
lambda와 partial은 비슷하지만 차이점이 있다. 람다의 경우 연산이 모두 끝난 후 코드가 생성된다. 반면 partial은 연산 도중 코드가 생성된다.
lambda 예)
# lambda의 예
funcs = list()
for i in range(5):
funcs.append(lambda: print(i))
for f in funcs:
f()
# 결과
4
4
4
4
4
partial 예)
# partial의 예
funcs = list()
for i in range(5):
funcs.append(partial(print, i)
for f in funcs:
f()
# 결과
0
1
2
3
4