10.일급함수(First Class Function)
by SANGGI JEON
일급함수 (First Class Function)
- 함수를 변수로 생각하는 것
- 함수 자체를 인자(argument)로써 다른 함수에 전달, 다른 함수의 결과값으로 반환, 함수를 변수에 할당할 수 있음
함수를 변수에 할당
def double_func(x):
return x * 2
a = double_func
print(double_func) # 결과: <function double_func at 0x000002A8AB8D21F8>
print(a) # 결과: <function double_func at 0x000002A8AB8D21F8>
print(a(5)) # 결과: 10
함수를 전달 인자로 사용
from typing import Callable, List
def double_func(x):
return x * 2
def make_double_list(func:Callable, args:List) -> List:
result = []
for i in args:
result.append(func(i))
return result
input_list = [1, 2, 3, 4, 5]
doubles = make_double_list(double_func, input_list)
print(doubles)
함수내의 함수 선언
import time
def log_formatter(msg):
def log_message():
time_str = time.strftime('%c', time.localtime(time.time()))
print(time_str, end='')
print('------>', end='')
print(msg)
return log_message
log_msg = log_formatter('test log')
print(log_msg)
log_msg()
# 결과
<function log_formatter.<locals>.log_message at 0x000002A8ABB634C8>
Wed Jul 15 10:20:37 2020------>test log
Subscribe via RSS