일급함수 : 함수를 다른 변수와 동일하게 다루는 언어는 일급 함수를 가졌다고 표현한다.
함수를
변수, 데이터에 할당 가능
인자로 넘기기 가능
리턴 값으로 반환 가능
함수 내 정의 가능
# 함수를
# 변수, 데이터에 할당 가능
# 인자로 넘기기 가능
# 리턴 값으로 반환 가능
# 함수 내 정의 가능
def func():
print('hello')
# 변수에 함수를 할당
func1 = func
func()
func1()
print('address of func : ', id(func))
print('address of func1 : ', id(func1))
# 함수 인자로 할당
def my(a):
print('address of a : ', id(a))
a()
my(func) # a <- func : func()을 호출한다.
# 반환값으로 할당
def my1():
return func
rst = my1()
rst()
print('address of return func : ', id(rst))
# 일급함수 - dictionary를 이용한 switch 문 제작
# 파이썬에서는 switch문이 없다
def a_func():
print('a_func!')
def b_func():
print('b_func!')
d = {0 : a_func, 1 : b_func}
menu = int(input('choose menu : ')) # 원하는 숫자 입력하면 정해진 대답이 나온다
d[menu]() # index에 input값을 집어넣는다