var_func = factorial # 함수 자체를 할당
print(var_func)
print(var_func(10)) # 변수에 할당한 채로 실행 가능
print(list(map(var_func, range(1, 11))))
3. 함수 인수 전달 가능
4. 함수 결과 반환 기능(return) -> 고위 함수(Higher-order function)
🌱 02
파이썬 변수 범위(Scope)
Global 선언
클로저 사용 이유
Class -> Closure 구현
🌱 03: 클로저 심화(Closure)
클로저 사용 예제
잘못된 클로저 사용
클로저 정리
🌱 04: 데코레이터(Decorator)
클로저 -> 데코레이터 관계
데코레이터 실습
🚩 데코레이터 장점
1. 중복 제거, 코드 간결, 공통 함수 작성
2. 로깅, 프레임워크, 유효성 체크..... -> 공통 기능
3. 조합해서 사용 용이
🚩 데코레이터 단점
1. 가독성 감소
2. 특정 기능에 한전된 함수 -> 단일 함수로 작성하는 것이 유리
3. 디버깅 불편
총 정리
# Chapter05
# 일급 함수(일급 객체)
# 파이썬 함수 특징
# 1. 런타임 초기화
# 2. 변수 할당 가능
# 3. 함수 인수 전달 가능
# 4. 함수 결과 반환 가능(return)
# 클로저
# Closure(클로저) 사용 이유
# 서버 프로그래밍 -> 동시성(Concurrency)제어 -> 메모리 공간에 여러 자원이 접근 -> 교착상태(Dead Lock)
# 메모리를 공유하지 않고 메시지 전달로 처리하기 위한 -> Erlang
# 클로저는 공유하되 변경되지 않는(Immutable, Read Only) 적극적으로 사용 -> 함수형 프로그래밍
# 클로저는 불변자료구조 및 atom, STM -> 멀티스레드(Coroutine) 프로그래밍에 강점
# 데코레이터
# 장점
# 1. 중복 제거, 코드 간결, 공통 함수 작성
# 2. 로깅, 프레임워크, 유효성 체크..... -> 공통 기능
# 3. 조합해서 사용 용이
# 단점
# 1. 가독성 감소
# 2. 특정 기능에 한정된 함수는 -> 단일 함수로 작성하는 것이 유리
# 3. 디버깅 불편