
파이썬 심화(Higher_order_function)
def factorial(n):
'''Factorial Function -> n:int'''
if n == 1:
return 1
return n * factorial(n-1)
class A:
pass
print('EX1-1 -', factorial(5))
print('EX1-2-', factorial.__doc__)
print('EX1-3 -', type(factorial), type(A))
print('EX1-4 -', set(sorted(dir(factorial)))-set(sorted(dir(A))))
print('EX1-5 -', factorial.__name__)
print('EX1-5 -', factorial.__code__)
print()
print()
var_func = factorial
print('EX2-1 -', var_func)
print('EX2-2 -', var_func(5))
print('EX2-3 -', map(var_func, range(1,6)))
print('EX2-4 -', list(map(var_func, range(1,6))))
함수 인수 전달 및 함수로 결과 반환 -> 고위 함수(Higher-order Function)
print('EX3-1 -', list(map(var_func, filter(lambda x:x % 2, range(1,6)))))
print('EX3-2 -', [var_func(i) for i in range(1,6) if i % 2])
from functools import reduce
from operator import add
print('EX3-3 -', reduce(add, range(1,11)))
print('EX3-4 -', sum(range(1,11)))
print('EX3-5 -', reduce(lambda x,t: x + t, range(1,11)))
print()
- reduce()함수를 배웠다.
- 함수의 인자에 함수를 넣을 수 있다.