나의 작은 valley
[python] 일급함수, 내적함수, 데코레이터 본문
728x90
o) 일급합수(First-class objects)
: 변수에 할당이 가능한 객체
>> 파라미터로 쓰이거나 리턴 값으로 쓰일 수 있다.
i.e) map(func, ex), func라는 함수라 map 함수의 파라미터로 쓰였다.
o) 내적함수 (inner function)
: 함수 내에 또 다른 함수가 존재함.
use_1) 함수 안에서 함수를 호출
def print_msg(msg):
def printer():
print(msg)
printer()
print_msg("후에엥")
#print_msg 호출 >> printer 호출 >> print(msg) 실행 >> 후에엥 출력
use_2) 함수의 반환값으로 함수를 사용
def print_msg(msg):
def printer():
print(msg)
return printer
new_msg = print_msg("내가 네게")
new_msg()
#입력값과 상관없이 정해진 msg가 print됨.
cf) 반환값으로 함수를 사용하는 걸 closures 라고 한다.
o) 데코레이터 (decorator function)
def star(func):
def inner(*args, **kwargs):
print("*"*3)
func(*args, **kwargs)
print("*"*3)
return inner
@star
def printer(msg):
print(msg)
printer("Hello")
>> step 1) printer라는 함수가 star의 매개변수로 들어간다.
>> step 2) star는 함수를 반환하고 inner가 실행됨
출력:
***
Hello
***
728x90
'Computer Science > [Python] 문법 정리' 카테고리의 다른 글
[python] csv (0) | 2023.02.03 |
---|---|
[python] 예외처리, 데이터 영구 보존(영속화) (0) | 2023.02.03 |
[Python] PyGame을 이용한 게임 프로그래밍 (3) (0) | 2022.09.14 |
[Python] Namedtuple (0) | 2022.09.03 |
[Python] 강화학습 (0) | 2022.09.03 |
Comments