Esecuzione di python

Riferimento :
cd mon_projet

python -m venv mon_venv

source mon_venv/bin/activate

# Sur windows
mon_venv\Scripts\activate

deactivate

requisito di installazione

pip install -r requirements.txt

iniziazione

I pattern di progettazione GoF in Python

I design pattern di GoF sono un insieme di 23 design pattern che sono stati descritti nel libro "Design Patterns: Elements of Reusable Object-Oriented Software".

Table 1. Ecco un elenco dei design pattern di GoF

Nome

Description

Metodo Factory

Crea oggetti senza specificare la classe esatta da istanziare.

Abstract Factory

Crea famiglie di oggetti correlati o dipendenti senza specificare la loro classe concreta.

costruttore

Separa la costruzione di un oggetto complesso dalla sua rappresentazione affinché lo stesso processo di costruzione possa creare diverse rappresentazioni.

Prototipo

Crea nuovi oggetti copiando un prototipo esistente.

Singleton

Limita l’istanziazione di una classe a un solo oggetto.

Adattare

Converte l’interfaccia di una classe in un’altra interfaccia che il cliente si aspetta.

Bridge

Disaccoppia un’astrazione dalla sua implementazione in modo che entrambe possano variare indipendentemente.

composito

Compone oggetti in strutture ad albero per rappresentare gerarchie parte-tutto.

Decoratore

Aggiungi dinamicamente responsabilità aggiuntive a un oggetto.

Facciata

Fornisce un’interfaccia unificata a un insieme di interfacce in un sottosistema.

Peso mosca

Riduce il costo di creazione e utilizzo di oggetti leggeri.

Proxy

Fornisce un sostituto o uno spazio riservato per un altro oggetto al fine di controllare l’accesso a esso.

Catena di responsabilità

Permette a più di un oggetto di trattare una richiesta.

ordine

Incapsula una richiesta in un oggetto, consentendo così di configurare i client con richieste diverse, code o registri, e di supportare operazioni annullabili.

Interprete

Dai una rappresentazione della grammatica di una lingua e usa questa rappresentazione per interpretare frasi in questa lingua.

Iteratore

Fornisce un modo per percorrere sequenzialmente gli elementi di un oggetto aggregato senza esporne la rappresentazione sottostante.

Mediator

Permette di ridurre le dipendenze complesse tra gli oggetti facendoli comunicare esclusivamente tramite un oggetto mediatore.

Memento

Fornisce la capacità di ripristinare un oggetto al suo stato precedente (senza violare l’incapsulamento).

Osserva

Definisce una dipendenza uno-a-molti tra gli oggetti in modo che quando un oggetto cambia stato, tutti i suoi dipendenti vengono notificati e aggiornati automaticamente.

Stato

Consente a un oggetto di cambiare comportamento quando cambia il suo stato interno.

Strategia

Definisce una famiglia di algoritmi, incapsula ciascuno di essi e li rende intercambiabili.

Metodo Template

Definisce lo scheletro di un algoritmo in un metodo, delegando alcuni passaggi alle sottoclassi.

visitatore

Consente di definire una nuova operazione da eseguire su una struttura di oggetti senza modificare le classi degli oggetti sui quali opera.

Programmazione funzionale

Biblioteca

URL

Description

PyMonad

https://github.com/jasondelaat/pymonad

PyMonad è un’implementazione di strutture di dati monadiche in Python basata su linguaggi di programmazione quali Haskell e F# con implementazioni per i tipi di monadi più comunemente utilizzati nella programmazione funzionale.https://www.miguelfarrajota.com/2021/06/monads-in-python-with-pymonad/[article]

PyFunctional

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

PyFunctional è una libreria Python per la programmazione funzionale che fornisce strumenti per lavorare con funzioni pure e iterabili.

Strumenti

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

Toolz è una libreria Python per la programmazione funzionale che fornisce strumenti per lavorare con funzioni pure e iterabili.

Fn.py

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

Fn.py è una libreria Python per la programmazione funzionale che fornisce strumenti per lavorare con funzioni pure e iterabili.

cocco

https://coconut-lang.org/

Coconut aggiunge diverse funzionalità a Python per la programmazione funzionale, incluse il pattern matchinghttps://stackoverflow.com/questions/11909681/are-there-pattern-matching-functions-in-python-like-this[conversazione sof]

effetti collaterali

loops

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

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

Articoli correlati