Memo Python
Gepubliceerd op 19 November 2023
Installeer python op windows
Python uitvoeren
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".
| 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 |
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 |
PyFunctional is een Python-bibliotheek voor functioneel programmeren die hulpmiddelen biedt om te werken met pure functies en iterables. |
|
Toolz |
Toolz is een Python-bibliotheek voor functioneel programmeren die tools biedt om te werken met zuivere functies en iterabele. |
|
Fn.py |
Fn.py is een Python-bibliotheek voor functionele programmering die tools biedt voor het werken met zuivere functies en iterables. |
|
kokosnoot |
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)