Đang chạy python

Vấn đề: Python venv

Tham chiếu:
cd mon_projet

python -m venv mon_venv

source mon_venv/bin/activate

# Sur windows
mon_venv\Scripts\activate

deactivate

cài đặt yêu cầu

pip install -r requirements.txt

khởi tạo

Các Design Patterns của GoF trong Python

Các design patterns của GoF là một tập hợp gồm 23 design patterns đã được mô tả trong cuốn sách "Design Patterns: Elements of Reusable Object-Oriented Software".

Dưới đây là danh sách các design patterns của GoF

Tên Mô tả

Factory Method

Tạo các đối tượng mà không cần chỉ định lớp chính xác cần khởi tạo.

Abstract Factory

Tạo các họ đối tượng liên quan hoặc phụ thuộc mà không cần chỉ định lớp cụ thể của chúng.

Người xây dựng

Tách biệt việc xây dựng một đối tượng phức tạp khỏi biểu diễn của nó để cùng một quá trình xây dựng có thể tạo ra các biểu diễn khác nhau.

Nguyên mẫu

Tạo các đối tượng mới bằng cách sao chép một prototype hiện có.

Singleton

Hạn chế việc khởi tạo một lớp chỉ cho một đối tượng duy nhất.

Bộ điều hợp

Chuyển đổi giao diện của một lớp thành một giao diện khác mà khách hàng mong đợi.

Cầu nối

Tách biệt một abstraction khỏi implementation của nó để cả hai có thể thay đổi độc lập.

Hỗn hợp

Hãy sắp xếp các đối tượng trong các cấu trúc dạng cây để biểu diễn các phân cấp bộ phận-toàn thể.

Decorator

Gắn động các trách nhiệm bổ sung vào một đối tượng.

Facade

Cung cấp một giao diện thống nhất cho một tập hợp các giao diện trong một phân hệ.

Flyweight

Giảm chi phí tạo và sử dụng các đối tượng nhẹ.

Proxy

Cung cấp một vật thay thế hoặc một trình giữ chỗ cho một đối tượng khác để kiểm soát quyền truy cập vào đối tượng đó.

Chuỗi Trách nhiệm

Cho phép nhiều hơn một đối tượng xử lý một yêu cầu.

Lệnh

Đóng gói một yêu cầu vào một đối tượng, từ đó cho phép tham số hóa các client với các yêu cầu, hàng đợi hoặc nhật ký khác nhau, và hỗ trợ các thao tác có thể hủy bỏ.

Trình thông dịch

Hãy cung cấp một biểu diễn về ngữ pháp của một ngôn ngữ và sử dụng biểu diễn đó để thông dịch các câu trong ngôn ngữ này.

Iterator

Cung cấp một phương thức để duyệt tuần tự các phần tử của một đối tượng tập hợp mà không làm lộ biểu diễn cơ bản của nó.

Trung gian

Cho phép giảm bớt các phụ thuộc phức tạp giữa các đối tượng bằng cách làm cho chúng chỉ giao tiếp với nhau thông qua một đối tượng trung gian.

Hãy nhớ rằng

Cung cấp khả năng khôi phục một đối tượng về trạng thái trước đó (mà không vi phạm tính đóng gói).

Người quan sát

Định nghĩa một mối quan hệ phụ thuộc một-nhiều giữa các đối tượng sao cho khi một đối tượng thay đổi trạng thái, tất cả các đối tượng phụ thuộc của nó sẽ được thông báo và cập nhật tự động.

Trạng thái

Cho phép một đối tượng thay đổi hành vi khi trạng thái nội bộ của nó thay đổi.

Chiến lược

Định nghĩa một họ các thuật toán, đóng gói mỗi thuật toán và khiến chúng có thể thay thế cho nhau.

Template Method

Định nghĩa khung sườn của một thuật toán trong một phương thức, chuyển giao một số bước cho các lớp con.

Khách truy cập

Cho phép định nghĩa một thao tác mới thực hiện trên một cấu trúc các đối tượng mà không làm thay đổi các lớp của những đối tượng đó.

Lập trình hàm

Thư viện

URL

Mô tả

PyMonad

https://github.com/jasondelaat/pymonad

PyMonad là một triển khai các cấu trúc dữ liệu monad trong Python dựa trên các ngôn ngữ lập trình như Haskell và F# với các triển khai cho những loại monad được sử dụng phổ biến nhất trong lập trình hàm.https://www.miguelfarrajota.com/2021/06/monads-in-python-with-pymonad/[bài viết]

PyFunctional

https://github.com/EntilZha/PyFunctional/

PyFunctional là một thư viện Python cho lập trình hàm, cung cấp các công cụ để làm việc với các hàm thuần túy và các đối tượng có thể lặp.

Toolz

https://toolz.readthedocs.io/en/latest/

Toolz là một thư viện Python cho lập trình hàm, cung cấp các công cụ để làm việc với các hàm thuần túy và các đối tượng có thể lặp (iterables).

Fn.py

https://github.com/kachayev/fn.py

Fn.py` là một thư viện Python cho lập trình hàm, cung cấp các công cụ để làm việc với các hàm thuần khiết và các đối tượng có thể lặp.

Dừa

https://coconut-lang.org/

Coconut bổ sung nhiều tính năng cho Python để lập trình hàm, bao gồm cả pattern matching.https://stackoverflow.com/questions/11909681/are-there-pattern-matching-functions-in-python-like-this[cuộc hội thoại sof]

tác dụng phụ

vòng lặp

# impérative way
result = []
for i in inputs:
    x = f(g(i))
    result.append(x)

# idiomatic way
result = map(comp(f,g), inputs)

Bài viết liên quan