Mam słownik, który ma wartości czasami jako łańcuchy, a czasem jako funkcje. Dla wartości, które są funkcjami, czy istnieje sposób na wykonanie tej funkcji bez jawnego wpisania ()
po uzyskaniu dostępu do klucza?Wartość słownika jako funkcja, która będzie wywoływana, gdy klucz jest dostępny, bez użycia "()"
Przykład:
d = {1: "A", 2: "B", 3: fn_1}
d[3]() # To run function
chcę:
d = {1: "A", 2: "B", 3: magic(fn_1)}
d[3] # To run function
Dlaczego bez '()'? Nie dziergaj swetra wokół guzika ... – Alexander
Nie rób tego. 'Jawny jest lepszy niż niejawny. Znaczenie w twoim kodzie polega na sprawdzeniu funkcji i wywołaniu jej; więc kod * powinien wyglądać jak * właśnie to robisz. Poza tym mieszanie takich typów jest złym pomysłem; musisz sprawdzić, czy najpierw masz ciąg (ponieważ nie możesz wywołać ciągu), a to sprawia, że twoje życie jest trudniejsze. –
... Ale po odbiciu brzmi to tak, jakbyś miał pytanie * projektu *, i powinno zadawać pytanie, które będzie bardziej odzwierciedlało to, co naprawdę chcesz zrobić. Np. Dlaczego masz ten słownik w pierwszej kolejności? –