Python-Memo
Publié le 19 November 2023
Python unter Windows installieren
Python läuft
-
Das Problem: Python-Venv
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.
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 |
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 |
PyFunctional ist eine Python-Bibliothek für funktionale Programmierung, die Tools bereitstellt, um mit reinen Funktionen und iterierbaren Objekten zu arbeiten. |
|
Toolz |
Toolz ist eine Python-Bibliothek für funktionale Programmierung, die Werkzeuge bereitstellt, um mit reinen Funktionen und Iterables zu arbeiten. |
|
Fn.py |
Fn.py ist eine Python-Bibliothek für funktionale Programmierung, die Werkzeuge zum Arbeiten mit reinen Funktionen und iterierbaren bereitstellt. |
|
Kokosnuss |
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)