Θέλω να γράψω μια συνάρτηση στην Python που επιστρέφει διαφορετικές σταθερές τιμές με βάση την τιμή ενός δείκτη εισόδου.
Σε άλλες γλώσσες θα χρησιμοποιούσα μια δήλωση switch
ή case
, αλλά η Python δεν φαίνεται να έχει δήλωση switch
. Ποιες είναι οι συνιστώμενες λύσεις της Python σε αυτό το σενάριο;
Μπορείτε να χρησιμοποιήσετε ένα λεξικό:
def f(x):
return {
'a': 1,
'b': 2,
}[x]
Πάντα μου άρεσε να το κάνω με αυτόν τον τρόπο
result = {
'a': lambda x: x * 5,
'b': lambda x: x + 7,
'c': lambda x: x - 2
}[value](x)
Αν πραγματικά επιστρέφετε απλώς μια προκαθορισμένη, σταθερή τιμή, μπορείτε να δημιουργήσετε ένα λεξικό με όλους τους πιθανούς δείκτες εισόδου ως κλειδιά, μαζί με τις αντίστοιχες τιμές τους. Επίσης, ίσως να μην θέλετε πραγματικά μια συνάρτηση να το κάνει αυτό - εκτός αν υπολογίζετε με κάποιο τρόπο την τιμή επιστροφής.
Α, και αν θέλετε να κάνετε κάτι σαν switch, δείτε εδώ.