Seite 1 von 1
Design Patterns in Python sinnvoll (für Clean Code)?
Verfasst: Donnerstag 15. Mai 2025, 13:07
von HarryPotter
Hallo zusammen,
ich beschäftige mich aktuell mit dem Thema Design Patterns in Python. Da Python keine "reine" OOP-Sprache ist können Design Patterns mit first class Methoden eleganter gelöst bzw. überflüssig gemacht werden. So wie ich das Verstanden haben ist das mehr der Pythonic-Way (und für mich persönlich einfach simpler).
Meine Frage: Gibt es irgendwelche Design Patterns (modifiziert), die sinnvoll sind als Design Pattern zu verwenden, oder würdet Ihr grundlegend darauf verzichten?
Mir geht es hier um die Frage was besser geeignet ist für Clean Code. Ich bin offen für eure Meinungen

Re: Design Patterns in Python sinnvoll (für Clean Code)?
Verfasst: Donnerstag 15. Mai 2025, 13:22
von HarryPotter
Danke schonmal für jegliche Hilfe

Re: Design Patterns in Python sinnvoll (für Clean Code)?
Verfasst: Donnerstag 15. Mai 2025, 13:26
von grubenfox
Ich meine dazu erst mal wenig (leider mache ich mittlerweile viel zu wenig in Python), stattdessen verweise ich mal auf das was andere Leute dazu geschrieben haben:
https://refactoring.guru/design-patterns/python
https://www.geeksforgeeks.org/tag/pytho ... n-pattern/
Wobei mindestens das Singleton-Pattern ist definitiv sinnvoll! Nutzen wir alle jedesmal wenn wir
schreiben...
https://www.geeksforgeeks.org/singleton ... ete-guide/
und das Borg-Singleton hatte ich früher immer gerne genutzt.
Re: Design Patterns in Python sinnvoll (für Clean Code)?
Verfasst: Donnerstag 15. Mai 2025, 13:41
von HarryPotter
Danke dir grubenfox
Dann werde ich mir mal deine Links zu Gemüte führen

Re: Design Patterns in Python sinnvoll (für Clean Code)?
Verfasst: Donnerstag 15. Mai 2025, 17:32
von snafu
Du könntest auch innerhalb von Python, den Quellcode von verschiedenen Modulen anschauen, um einen Eindruck zu bekommen, wie man komplexe Probleme sinnvoll strukturiert. Wobei da IMHO nicht alle Module so supertoll geschrieben sind. Ein mMn ganz gutes Beispiel ist jedenfalls in
pathlib._abc zu finden.
Re: Design Patterns in Python sinnvoll (für Clean Code)?
Verfasst: Donnerstag 15. Mai 2025, 21:40
von pillmuncher
Ganz allgemein: Die meisten Design Patterns im Gang of Four Buch sind für Programiersprachen, in denen es keine First Class Funktionen gibt, die man im Programm herumreichen könnte, oder in denen das zwar möglich, aber nicht idiomatisch ist. Und seit es in Python Pattern Matching gibt, braucht man auch keine Double Dispatch Mechanismen mehr selber zu bauen, wie Visitors und dergleichen.
Re: Design Patterns in Python sinnvoll (für Clean Code)?
Verfasst: Donnerstag 15. Mai 2025, 23:52
von __blackjack__
@HarryPotter: Auf Design-Patterns kann man gar nicht verzichten, denn die Muster bestimmte Probleme zu lösen gibt es in jeder Programmiersprache. Die ergeben sich ja einfach dadurch, dass sie zumindest eine gute Lösung sind. Entwurfsmuster werden ja nicht *er*funden, sondern in existierendem Quelltext *ge*funden.
Re: Design Patterns in Python sinnvoll (für Clean Code)?
Verfasst: Freitag 16. Mai 2025, 12:11
von HarryPotter
Danke euch!
@snafu: abc kenne ich aber path_abc ist mir neu. Das werde ich mir anschauen.
@pillmuncher: Das kenne ich ebenfalls nicht und werde mir das ebenfalls anschauen.
@__blackjack__: Da habe ich meinen Beitrag nicht sauber formuliert. Mir ging es nicht darum Design-Patterns zu verwerfen, sondern nur darum, wie man diese am besten für Python umsetzen kann. Quasi welche Patterns besser in first class designed werden sollen und welche (modifiziert) den alten GoF Patterns ähneln.

Re: Design Patterns in Python sinnvoll (für Clean Code)?
Verfasst: Freitag 16. Mai 2025, 13:48
von Sirius3
Die meisten dieser Design-Pattern-Seiten klingen für mich stark nach dem Prinzip, ich habe eine Lösung und suche jetzt ein Problem dafür.
Unter
https://www.geeksforgeeks.org/singleton ... ete-guide/ wird was von einem "Singleton Pattern in Python - A Complete Guide" geschwafelt, das Beispiel dazu ist aber ein globaler Namespace "CrawlerSingleton", das dazu mißbraucht wird, eine ganze Reihe globaler Variablen zu definieren.
Braucht man in Python das Singleton-Pattern? Nein, es gibt `global`. Sollte man das Nutzen? Nein.