Εκτέλεση python

Αναφορά :
cd mon_projet

python -m venv mon_venv

source mon_venv/bin/activate

# Sur windows
mon_venv\Scripts\activate

deactivate

απαιτηση εγκατάστασης

pip install -r requirements.txt

αρχή

Σχεδιαστικά πρότυπα του GoF στην Python

Τα design patterns του GoF είναι ένα σύνολο από 23 design patterns που περιγράφονται στο βιβλίο "Design Patterns: Elements of Reusable Object-Oriented Software".

Table 1. Εδώ είναι μια λίστα των σχεδιαστικών μοτίβων του GoF

όνομα

Περιγραφή

Μέθοδος Factory

Δημιουργεί αντικείμενα χωρίς να καθορίζει την ακριβή κλάση που θα δημιουργηθεί.

Αβστράκτο Εργοστασείο

Δημιούργησε οικογένειες συνδεδεμένων ή εξαρτημένων αντικειμένων χωρίς να καθορίζει τη συγκεκριμένη κλάση τους.

Κτίristς

Αποχωρίζει τη κατασκευή ενός πολύπλοκου αντικειμένου από την αναπαράστασή του ώστε η ίδια διαδικασία κατασκευής να μπορεί να δημιουργήσει διαφορετικές αναπαραστάσεις.

πρωτότυπο

Δημιούργησε νέα αντικείμενα αντιγράφοντας ένα υπάρχον πρωτότυπο.

Singleton

Περιορίζει την δημιουργία ενός μόνο αντικειμένου από μια κλάση.

Αντάπτορας

Μετετρέπει την διεπαφή μιας κλάσης σε άλλη διεπαφή που ο πελάτης αναμένει.

Γέφυρα

Αποσυνδέστε μια αφαίρεση από την υλοποίηση της ώστε και τα δύο να μπορούν να μεταβούν ανεξάρτητα.

Συνθετικό

Συνθέστε αντικείμενα σε δομές δέντρου για να αντιπροσωπεύσουν ιεραρχίες μερών-όλου.

διακόσμητης

Προσθέστε δυναμικά επιπλέον ευθύνες σε ένα αντικείμενο.

φασάδα

Παρέχει μια ενιαία διεπαφή σε ένα σύνολο διεπαφών σε ένα υποσύστημα.

Flyweight

Μειώνει το κόστος δημιουργίας και χρήσης ελαφριών αντικειμένων.

πρόκσο

Παρέχει έναν αντικαταστάτη ή έναν χώρο κράτησης για ένα άλλο αντικείμενο, ώστε να ελέγχει την πρόσβαση σε αυτό.

Αλυσίδα ευθυνών

Επιτρέπει σε περισσότερο από ένα αντικείμενο να χειριστεί μια αίτηση.

Εντολή

Εγκαψουλώνει έναν αίτημα σε ένα αντικείμενο, επιτρέποντας έτσι να ρυθμιστούν οι πελάτες με διαφορετικούς αιτήματα, ουρές ή αρχεία καταγραφής, και να υποστηρίζει τις αναστρεψιμένες λειτουργίες.

διερμηνέας

Δώσε μια αναπαράσταση της γραμματικής μιας γλώσσας και χρησιμοποίησε αυτή την αναπαράσταση για να ερμηνεύσεις προτάσεις σε αυτή τη γλώσσα.

επαναληπτής

Παρέχει έναν τρόπο για να διαπερνάει τα στοιχεία ενός αντικειμένου συσσωρευτικού σε σειρά, χωρίς να αποκαλύπτει την υποκείμενη αναπαράσταση του.

μεσολαβητής

Επιτρέπει τη μείωση των پیچικών εξαρτήσεων μεταξύ των αντικειμένων, κάντας τα να επικοινωνούν μόνο μέσω ενός αντικειμένου-μεσολαβητή.

υπομνηστικό

Παρέχει τη δυνατότητα να αποκαταστήσει ένα αντικείμενο στην προηγούμενη του κατάσταση (χωρίς να βιάζει την ενσωμάτωση).

Παρατηρητής

Ορίζει μια μία-σε-πολλή εξάρτηση μεταξύ των αντικειμένων ώστε όταν ένα αντικείμενο αλλάζει κατάσταση, όλοι οι εξαρτητοί του ειδοποιούνται και ενημερώνονται αυτόματα.

Κατάσταση

Επιτρέπει σε ένα αντικείμενο να αλλάξει τη συμπεριφορά του όταν αλλάζει την εσωτερική κατάσταση του.

Στρατηγική

Καθορίζει μια οικογένεια αλγόριθμων, περικλείει καθέναν από αυτούς και τα κάνει εναλλάξιμα.

Μέθοδος προτύπου

Ορίζει το σκελετό ενός αλγόριθμου σε μια μέθοδο, μεταφέροντας ορισμένα βήματα στις υποκλάσσες.

Επισκέπτης

Επιτρέπει τον ορισμό μιας νέας λειτουργίας που θα εκτελείται σε μια δομή αντικειμένων χωρίς να αλλάξουν οι κλάσεις των αντικειμένων πάνω στα οποία λειτουργεί.

Λειτουργικός προγραμματισμός

Βιβλιοθήκη

URL

Περιγραφή

PyMonad

https://github.com/jasondelaat/pymonad

Το PyMonad είναι μια υλοποίηση μοναδικών δομών δεδομένων στην Python, βασισμένη σε γλώσσες προγραμματισμού όπως το Haskell και το F#, με υλοποιήσεις για τις πιο συχνά使用μένες μορφές μονάδων στον λειτουργικό προγραμματισμό.https://www.miguelfarrajota.com/2021/06/monads-in-python-with-pymonad/[άρθρο]

PyFunctional

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

PyFunctional είναι μια βιβλιοθήκη Python για τη λειτουργική προγραμματισμό που παρέχει εργαλεία για να εργαστείτε με καθαρές λειτουργίες και επαναλήψιμα.

Τουλζ

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

Το Toolz είναι μια βιβλιοθήκη Python για τη λειτουργική προγραμματιστική που παρέχει εργαλεία για να εργαστείτε με καθαρές συναρτήσεις και επαναλαμβανόμενες δομές.

Fn.py

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

Το Fn.py είναι μια βιβλιοθήκη Python για προγραμματισμό λειτουργικό που παρέχει εργαλεία για εργασία με καθαρές λειτουργίες και iterables.

Κοκός

https://coconut-lang.org/

Το Coconut προσθέτει muitas λειτουργίες στη γλώσσα Python για τη συναρτησιακή προγραμματισμό, συμπεριλαμβανομένου του pattern matching.https://stackoverflow.com/questions/11909681/are-there-pattern-matching-functions-in-python-like-this[συνομιλία sof]

παρενέργειες

βρόχοι

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

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

Σχετικά άρθρα