Python läuft

  1. Das Problem: Python-Venv

Referenz :
cd mon_projet

python -m venv mon_venv

source mon_venv/bin/activate

# Sur windows
mon_venv\Scripts\activate

deactivate

Installationsvoraussetzung

pip install -r requirements.txt

Einweihung

Entwurfsmuster des GoF in Python

Die GoF-Designmuster sind ein Satz von 23 Designmustern, die im Buch "Design Patterns: Elements of Reusable Object-Oriented Software" beschrieben wurden.

Table 1. Hier ist eine Liste der GoF-Designmuster

Name

Beschreibung

Fabrikmethode

Erstelle Objekte, ohne die genaue Klasse anzugeben, die instanziiert werden soll.

Abstrakte Fabrik

Erstelle Familien von verwandten oder abhängigen Objekten ohne deren konkrete Klasse anzugeben.

Ersteller

Trennt die Konstruktion eines komplexen Objekts von seiner Darstellung, damit derselbe Konstruktionsprozess unterschiedliche Darstellungen erzeugen kann.

Prototyp

Erstelle neue Objekte durch Kopieren eines vorhandenen Prototyps.

Singleton

Beschränkt die Instanziierung einer Klasse auf ein einzelnes Objekt.

anpassen

Konvertiert die Schnittstelle einer Klasse in eine andere Schnittstelle, die der Client erwartet.

Brücke

Entkoppel eine Abstraktion von ihrer Implementierung, sodass beide unabhängig voneinander variieren können.

Komposit

Setze Objekte in Baumstrukturen zusammen, um Teil-Ganzes-Hierarchien darzustellen.

Dekorateur

Hänge dynamisch zusätzliche Verantwortlichkeiten an ein Objekt an.

Fassade

Bietet eine einheitliche Schnittstelle zu einer Reihe von Schnittstellen eines Untersystems.

Flyweight

Verringert die Kosten für die Erstellung und Nutzung leichter Objekte.

Proxy

Stellt einen Ersatz oder einen Platzhalter für ein anderes Objekt bereit, um den Zugriff darauf zu kontrollieren.

Kette der Verantwortung

Ermöglicht mehreren Objekten, eine Anfrage zu behandeln.

Befehl

Kapselt eine Anfrage in einem Objekt, wodurch Clients mit verschiedenen Anfragen, Warteschlangen oder Protokollen konfiguriert werden können und stornierbare Operationen unterstützt werden.

Dolmetscher

Gib eine Darstellung der Grammatik einer Sprache an und verwende diese Darstellung, um Sätze in dieser Sprache zu interpretieren.

Iterator </think> Iterator

Es bietet eine Möglichkeit, die Elemente eines aggregierten Objekts sequentiell zu durchlaufen, ohne seine zugrundeliegende Darstellung offenzulegen.

Vermittler

Ermöglicht, die komplexen Abhängigkeiten zwischen den Objekten zu reduzieren, indem es sie ausschließlich über ein Mediator-Objekt kommunizieren lässt.

Erinnerung

Bietet die Fähigkeit, ein Objekt in seinen vorherigen Zustand wiederherzustellen (ohne die Kapselung zu verletzen).

Beobachten

Definiert eine Eins-zu-Viele-Beziehung zwischen den Objekten, sodass bei einer Zustandsänderung eines Objekts alle seine Abhängigen automatisch benachrichtigt und aktualisiert werden.

Zustand

Ermöglicht einem Objekt, sein Verhalten zu ändern, wenn es seinen internen Zustand ändert.

Strategie

Definiert eine Familie von Algorithmen, kapselt jedes davon ein und macht sie austauschbar.

Vorlagenmethode

Definiert das Skelett eines Algorithmus in einer Methode, wobei bestimmte Schritte an Unterklassen delegiert werden.

Besucher

Ermöglicht es, eine neue Operation zu definieren, die auf einer Objektstruktur ausgeführt werden kann, ohne die Klassen der Objekte zu ändern, auf denen sie ausgeführt wird.

Funktionale Programmierung

Bibliothek

URL

Beschreibung

PyMonad

https://github.com/jasondelaat/pymonad

PyMonad ist eine Implementierung monadischer Datenstrukturen in Python, die auf Programmiersprachen wie Haskell und F# basiert und Implementierungen für die am häufigsten verwendeten Monadentypen in der funktionalen Programmierung bereitstellt.https://www.miguelfarrajota.com/2021/06/monads-in-python-with-pymonad/[article]

PyFunctional

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

PyFunctional ist eine Python-Bibliothek für funktionale Programmierung, die Tools bereitstellt, um mit reinen Funktionen und iterierbaren Objekten zu arbeiten.

Toolz

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

Toolz ist eine Python-Bibliothek für funktionale Programmierung, die Werkzeuge bereitstellt, um mit reinen Funktionen und Iterables zu arbeiten.

Fn.py

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

Fn.py ist eine Python-Bibliothek für funktionale Programmierung, die Werkzeuge zum Arbeiten mit reinen Funktionen und iterierbaren bereitstellt.

Kokosnuss

https://coconut-lang.org/

Coconut fügt Python mehrere Funktionen für die funktionale Programmierung hinzu, einschließlich Musterabgleich.https://stackoverflow.com/questions/11909681/are-there-pattern-matching-functions-in-python-like-this[Gespräch sof]

Nebenwirkungen

Schleifen

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

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

Verwandte Artikel