파이썬 메모
게시: 19 November 2023
Windows에 Python 설치
파이썬 실행 중
참조 :
cd mon_projet
python -m venv mon_venv
source mon_venv/bin/activate
# Sur windows
mon_venv\Scripts\activate
deactivate
설치 요구사항
pip install -r requirements.txt
파이썬에서의 GoF 디자인 패턴
GoF 디자인 패턴은 《Design Patterns: Elements of Reusable Object-Oriented Software》이라는 책에 기술된 23가지 디자인 패턴의 집합입니다.
이름 |
설명 |
팩토리 메서드 |
정확한 클래스를 지정하지 않고 객체를 생성합니다. |
추상 팩토리 |
구체적인 클래스를 지정하지 않고 관련되거나 의존적인 객체들의 가족을 만듭니다. |
건설업자 |
복잡한 객체의 구축을 그 객체의 표현에서 분리하여, 동일한 구축 과정으로 서로 다른 표현을 만들 수 있게 한다. |
프로토타입 |
기존 프로토타입을 복사하여 새 객체를 만든다. |
Singleton |
클래스의 인스턴스화를 하나의 객체로 제한합니다. |
어댑터 |
클래스의 인터페이스를 클라이언트가 기대하는 다른 인터페이스로 변환합니다. |
브리지 |
추상화를 구현으로부터 분리하여 두 가지가 독립적으로 변하도록 한다. |
복합 |
트리 구조에 객체를 구성하여 부분-전체 계층 구조를 표현합니다. |
데코레이터 |
객체에 동적으로 추가적인 책임을 연결합니다. |
정면 |
하위 시스템에 있는 인터페이스 집합에 대한 통합 인터페이스를 제공합니다. |
플라이웨이트 |
가벼운 객체 생성 및 사용 비용을 줄입니다. |
프록시 |
다른 개체에 대한 액세스를 제어하기 위해 대체물 또는 자리 표시자를 제공합니다. |
책임 연쇄 |
두 개 이상의 객체가 요청을 처리할 수 있게 한다. |
명령 |
요청을 객체에 캡슐화함으로써 다양한 요청, 큐 또는 로그를 가진 클라이언트를 매개변수화하고, 취소 가능한 작업을 지원할 수 있습니다. |
통역사 |
언어의 문법 표현을 제공하고, 이 표현을 사용하여 해당 언어의 문장을 해석한다. |
이터레이터 |
집계 객체의 요소들을 순차적으로 탐색할 수 있는 방법을 제공하면서, 내부 표현을 노출하지 않습니다. |
중재자 |
객체 간 복잡한 의존성을 중재자 객체를 통해서만 통신하도록 함으로써 줄일 수 있습니다. |
메멘토 |
이전 상태로 객체를 복원할 수 있는 기능을 제공합니다(캡슐화를 위반하지 않고). |
관찰자 |
객체 간의 일대다 의존성을 정의하여, 객체의 상태가 변경되면 모든 종속 객체에 자동으로 알림이 전송되고 업데이트됩니다. |
상태 |
객체가 내부 상태가 변경될 때 행동을 변경할 수 있게 합니다. |
전략 |
알고리즘 가족을 정의하고, 각각을 캡슐화하여 교환 가능하게 만든다. |
템플릿 메서드 |
메서드 내에서 알고리즘의 골격을 정의하고, 일부 단계는 서브클래스로 위임한다. |
방문자 |
객체 구조에 새로운 연산을 정의할 수 있게 하며, 해당 연산을 수행하는 객체의 클래스를 변경하지 않고 수행한다. |
함수형 프로그래밍
도서관 |
URL |
설명 |
PyMonad |
PyMonad는 Haskell 및 F#과 같은 프로그래밍 언어를 기반으로 한 Python의 모나딕 데이터 구조 구현으로, 함수형 프로그래밍에서 가장 일반적으로 사용되는 모나드 유형에 대한 구현을 제공합니다.https://www.miguelfarrajota.com/2021/06/monads-in-python-with-pymonad/[기사] |
|
파이펑셔널 |
PyFunctional은 함수형 프로그래밍을 위한 파이썬 라이브러리로, 순수 함수와 이터러블을 다루기 위한 도구를 제공합니다. |
|
툴즈 |
Toolz는 순수 함수와 이터러블을 다루는 데 사용할 수 있는 도구를 제공하는 함수형 프로그래밍을 위한 Python 라이브러리이다. |
|
Fn.py |
Fn.py는 순수 함수와 이터러블 작업에 사용할 도구를 제공하는 함수형 프로그래밍을 위한 Python 라이브러리입니다. |
|
코코넛 |
Coconut은 함수형 프로그래밍을 위해 Python에 여러 가지 기능을 추가하며, 여기에는 패턴 매칭도 포함됩니다.https://stackoverflow.com/questions/11909681/are-there-pattern-matching-functions-in-python-like-this[대화 소프] |
부작용
루프
# impérative way
result = []
for i in inputs:
x = f(g(i))
result.append(x)
# idiomatic way
result = map(comp(f,g), inputs)
관련 기사
31 May 2026
14 May 2026