728x90
3주차 미션: 섹션 4 ~ 5
섹션 5에서는 파이썬 일급합수를 배웠다.
일급함수(First Class)의 특징을 가지면 함수형 프로그래밍이 가능하다.
함수형 프로그래밍의 장점
- 코드를 간결하게 작성하여 개발 시간 단축 가능
- 부작용을 허용하지 않는 순수 함수(Pure Function)를 지향
- 기능 위주 분류 -> 기능 추가, 개선, 수정이 용이
- 동시에 여러 스레드에서 문제없이 동작하는 프로그램 작성
🌱 01
- 파이썬 함수 특징
- 익명함수(Lambda)
- Callable 설명
- Partial 사용법
🚩 파이썬 함수 특징
1. 런타임 초기화
2. 변수 할당 가능
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. 디버깅 불편
강의 링크:
우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
728x90
'활동들 > 인프런 대학생 LEAF 2기' 카테고리의 다른 글
[인프런 리프 2기] 7. AsyncIO 멀티 스크랩핑 실습 (0) | 2021.04.02 |
---|---|
[인프런 리프 2기] 6. 파이썬 병행성 (0) | 2021.04.02 |
[인프런 리프 2기] 4. 파이썬 데이터 모델 (0) | 2021.03.29 |
[인프런 리프 2기] 3. 파이썬 데이터 모델 (0) | 2021.03.22 |
[인프런 리프 2기] 2. 파이썬 클래스 심화 (0) | 2021.03.22 |