Υπάρχουν τρεις τύποι ορισμάτων που μπορεί να δεχτεί μια συνάρτηση Python: τυπικό, μεταβλητό (*args) και λέξη-κλειδί (**kwargs). Τα τυπικά ορίσματα είναι τα πιο απλά αλλά έχουν περιορισμένη λειτουργικότητα. Από την άλλη πλευρά, τα *args και **kwargs σάς επιτρέπουν να κάνετε τις συναρτήσεις σας πιο ευέλικτες, αποδεχόμενοι έναν μεταβλητό αριθμό εισόδων.

Ο τύπος διέλευσης ορισμάτων που επιλέγετε εξαρτάται από τη φύση της συνάρτησής σας και το δικό σας στυλ προγραμματισμού που προτιμάτε.

Βασικές συναρτήσεις στην Python

Για να κατανοήσουμε πώς λειτουργούν τα δύο μεταβλητά ορίσματα στις συναρτήσεις της Python, είναι σημαντικό να κατανοήσουμε αρχικά γιατί υπάρχουν. Μια απλή συνάρτηση δηλώνει έναν σταθερό αριθμό ανώνυμων ορισμάτων όπως:

defπρόσθετο(α, β, γ):
ΕΠΙΣΤΡΟΦΗ α + β + γ

Αυτή η λειτουργία λειτουργεί καλά, αλλά υπάρχει περιθώριο βελτίωσης. Το μεγαλύτερο πρόβλημα είναι ότι χειρίζεται μόνο δύο ορίσματα, επομένως μπορεί να προσθέσει μόνο δύο αριθμούς. Τι γίνεται αν θέλετε να προσθέσετε δύο ή τέσσερις αριθμούς; Αυτή η λειτουργία δεν θα σας επιτρέψει να το κάνετε. Η μετάδοση περισσότερων ή λιγότερων ορισμάτων από αυτά που δέχεται η συνάρτηση θα οδηγήσει σε TypeError.

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

Εκεί μπαίνουν τα μεταβλητά επιχειρήματα και τα επιχειρήματα λέξεων-κλειδιών. Χρησιμοποιώντας *args και **kwargs, μπορείτε να ορίσετε ευέλικτες συναρτήσεις που μπορούν να λάβουν μεταβλητό αριθμό εισόδων.

Τι είναι το *args στην Python;

Η κύρια ιδέα πίσω από το *args στην Python είναι να σας επιτρέψει να περάσετε έναν μεταβλητό αριθμό εισόδων στη συνάρτησή σας. Αυτό είναι χρήσιμο σε διάφορες εφαρμογές. Για παράδειγμα, σκεφτείτε ένα πρόγραμμα αριθμομηχανής όπου θέλετε να δώσετε στον χρήστη τη δυνατότητα να προσθέσει δύο ή περισσότερους αριθμούς και να επιστρέψει το άθροισμα.

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

Πώς να χρησιμοποιήσετε το *args

Μπορείτε να τροποποιήσετε τη συνάρτηση addnum για να λάβετε έναν μεταβλητό αριθμό εισόδων ως εξής:

defπρόσθετο(*args):
σύνολο = 0

Για αρ σε args:
σύνολο = σύνολο + αριθμ

ΕΠΙΣΤΡΟΦΗ σύνολο

Το απόσπασμα κώδικα παραπάνω χρησιμοποιεί έναν βρόχο for για επανάληψη μέσω των παρεχόμενων εισόδων.

Στη συνέχεια, μπορείτε να καλέσετε τη συνάρτηση addnum με μεταβλητά ορίσματα και θα λειτουργήσει χωρίς να εμφανιστεί σφάλμα:

Τυπώνω(προσθήκη10, 1, 12, 12, 4, 54, 5)) Το ## επιστρέφει 98
Τυπώνω(προσθήκη14, 54, 5)) # επιστρέφει 73
Τυπώνω(προσθήκη10, 5)) # επιστρέφει 15

Τι είναι το **kwargs στην Python;

Ενώ τόσο το *args όσο και το **kwargs μας επιτρέπουν να περάσουμε έναν μεταβλητό αριθμό εισόδων σε συναρτήσεις, το τελευταίο είναι συγκεκριμένο για ορίσματα λέξεων-κλειδιών. Σε περίπτωση που δεν γνωρίζετε, τα ορίσματα λέξεων-κλειδιών είναι απλά φανταχτερά ονόματα για ορίσματα με όνομα.

Ένα άλλο μοναδικό πράγμα για το **kwargs είναι ότι η Python αντιπροσωπεύει την τιμή ως λεξικό.

Πώς να χρησιμοποιήσετε το **kwargs

Όπως το *args, ο διπλός αστερίσκος είναι το σημαντικό κομμάτι. μπορείτε να χρησιμοποιήσετε οποιαδήποτε λέξη ως όνομα παραμέτρου. Ακολουθεί ένα παράδειγμα για το πώς να χρησιμοποιήσετε το **kwargs στην Python:

defεβδομαδιαία_προσέλευση(**εργάσιμες):
σύνολο_συμμετεχόντων = 0

Γιαπαρευρισκόμενοισεεργάσιμες.αξίες():
total_attendees = total_attendees + συμμετέχοντες

ΕΠΙΣΤΡΟΦΗ total_attendees

Τυπώνω(εβδομαδιαία_προσέλευση (Δευτέρα = 265, Τρίτη = 698, Τετάρτη = 365, Πέμπτη = 463, Παρασκευή = 234)) # επιστρέφει 2025
Τυπώνω(εβδομαδιαία_προσέλευση (Δευτέρα = 265, Παρασκευή = 234)) Το # επιστρέφει 499
Τυπώνω(εβδομαδιαία_προσέλευση (Τετάρτη = 365, Πέμπτη = 463, Παρασκευή = 234)) Το # επιστρέφει 1062

Το παραπάνω απόσπασμα κώδικα χρησιμοποιεί επίσης έναν βρόχο for, αλλά αυτή τη φορά με την ενσωματωμένη μέθοδο values() της Python. Αυτή η μέθοδος επιστρέφει ένα αντικείμενο προβολής όλων των τιμών στο λεξικό. Η μέθοδος values() σάς επιτρέπει βρόχο μέσα από ένα λεξικό Python χωρίς ταλαιπωρία.

Χρησιμοποιήστε μεταβλητά ορίσματα για να κάνετε τις συναρτήσεις της Python σας ευέλικτες

Τα ορίσματα συναρτήσεων είναι εύχρηστα, αλλά ορισμένες συναρτήσεις μπορούν να ωφεληθούν από την αποδοχή ενός μεταβλητού αριθμού ορισμάτων. Τα ονομασμένα ορίσματα λέξεων-κλειδιών μπορούν να κάνουν τον κώδικά σας πιο ευανάγνωστο και πιο εύκολο στη χρήση. Θα πρέπει να αγκαλιάσετε τα ορίσματα *args και **kwargs της Python. Είναι αρκετά απλά στη χρήση και με αυτά μπορείτε να κάνετε τις λειτουργίες και τα προγράμματά σας πιο ευέλικτα.

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