Python uitvoeren

Referentie :
cd mon_projet

python -m venv mon_venv

source mon_venv/bin/activate

# Sur windows
mon_venv\Scripts\activate

deactivate

installatievereiste

pip install -r requirements.txt

initiatie

Ontwerppatronen van GoF in Python

De GoF-ontwerppatronen vormen een verzameling van 23 ontwerppatronen die beschreven zijn in het boek "Design Patterns: Elements of Reusable Object-Oriented Software".

Table 1. Hier is een lijst van de ontwerppatronen van de GoF
Naam Beschrijving

Fabrikmethode

Maak objecten aan zonder de exacte klasse op te geven die geïnstantieerd moet worden.

Abstract Factory

Maak families van gerelateerde of afhankelijke objecten zonder hun concrete klasse op te geven.

Bouwer

Scheid de bouw van een complex object van zijn representatie, zodat hetzelfde bouwproces verschillende representaties kan creëren.

Prototype

Maak nieuwe objecten aan door een bestaand prototype te kopiëren.

Singleton

Beperkt de instantiatie van een klasse tot één object.

Adapter

Converteert de interface van een klasse naar een andere interface die de client verwacht.

brug

Ontkoppel een abstractie van de implementatie zodat beide onafhankelijk kunnen variëren.

composiet

Samenstellen van objecten in boomstructuren om deel-heel-hiërarchieën weer te geven.

Decorator

Koppel dynamisch extra verantwoordelijkheden aan een object.

gevel

Biedt een uniforme interface aan een set van interfaces in een subsysteem

vlieggewicht

Verlaagt de kosten voor het creëren en gebruiken van lichte objecten.

Proxy

Biedt een vervanging of een tijdelijke aanduiding voor een ander object om de toegang tot dat object te controleren.

Keten van verantwoordelijkheid

Staart meer dan één object toe om een verzoek te verwerken.

Opdracht

Encapsuleer een verzoek in een object, waardoor het mogelijk wordt om clients te configureren met verschillende verzoeken, wachtrijen of logboeken, en om ongedaan te maken bewerkingen te ondersteunen.

Interpreter

Geef een representatie van de grammatica van een taal en gebruik deze representatie om zinnen in die taal te interpreteren.

Iterator

Biedt een manier om de elementen van een geaggregeerd object sequentieel te doorlopen zonder de onderliggende representatie bloot te stellen.

Mediator

Stelt in staat om complexe afhankelijkheden tussen objecten te verminderen door ze uitsluitend via een bemiddelend object te laten communiceren.

Herinnering

Biedt de mogelijkheid om een object te herstellen naar zijn vorige staat (zonder de encapsulatie te schenden).

waarnemer

Definieert een een-op-veel afhankelijkheid tussen objecten zodat wanneer een object van staat verandert, al zijn afhankelijken automatisch worden geïnformeerd en bijgewerkt.

staat

Stelt een object in staat zijn gedrag te veranderen wanneer het zijn interne staat verandert.

Strategie

Definieert een familie algoritmen, omhult elk ervan en maakt ze uitwisselbaar.

Sjabloonmethode

Definieert het skelet van een algoritme in een methode, waarbij bepaalde stappen naar subklassen worden uitbesteed.

Bezoeker

Stelt in staat een nieuwe bewerking te definiëren die moet worden uitgevoerd op een structuur van objecten zonder de klassen van de objecten waarop deze werkt te wijzigen.

functioneel programmeren

Bibliotheek

URL

Omschrijving

PyMonad

https://github.com/jasondelaat/pymonad

PyMonad is een implementatie van monadische datastructuren in Python gebaseerd op programmeertalen zoals Haskell en F# met implementaties voor de meest gebruikte monadtypen in functioneel programmeren.https://www.miguelfarrajota.com/2021/06/monads-in-python-with-pymonad/[artikel]

PyFunctional

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

PyFunctional is een Python-bibliotheek voor functioneel programmeren die hulpmiddelen biedt om te werken met pure functies en iterables.

Toolz

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

Toolz is een Python-bibliotheek voor functioneel programmeren die tools biedt om te werken met zuivere functies en iterabele.

Fn.py

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

Fn.py is een Python-bibliotheek voor functionele programmering die tools biedt voor het werken met zuivere functies en iterables.

kokosnoot

https://coconut-lang.org/

Coconut voegt verschillende functionaliteiten toe aan Python voor functionele programmering, inclusief patroonmatching.https://stackoverflow.com/questions/11909681/are-there-pattern-matching-functions-in-python-like-this[gesprek sof]

bijwerkingen

lussen

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

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

Gerelateerde artikelen