Jestem początkującym Pythonem i właśnie nauczyłem się techniki obejmującej słowniki i funkcje. Składnia jest łatwa i wydaje się trywialna, ale moje zmysły pytona mrowią. Coś mi mówi, że jest to głęboka i bardzo pytoniczna koncepcja i nie do końca rozumiem jej znaczenie. Czy ktoś może nazwać tę technikę i wyjaśnić, w jaki sposób / dlaczego jest ona przydatna?
Technika polega na tym, że masz słownik Pythona i funkcję, której zamierzasz używać. Wstawiasz dodatkowy element do słownika, którego wartością jest nazwa funkcji. Kiedy jesteś gotowy, aby wywołać funkcję, wywołujesz połączenie pośrednio , odwołując się do elementu dict, a nie funkcji według nazwy.
Przykład, z którego pracuję, pochodzi z Learn Python the Hard Way, 2nd Ed. (Jest to wersja dostępna po rejestracji przez Udemy.com ; niestety bezpłatna wersja HTML na żywo to obecnie Ed 3 i nie zawiera już tego przykładu).
Parafrazować:
# make a dictionary of US states and major cities
cities = {'San Diego':'CA', 'New York':'NY', 'Detroit':'MI'}
# define a function to use on such a dictionary
def find_city (map, city):
# does something, returns some value
if city in map:
return map[city]
else:
return "Not found"
# then add a final dict element that refers to the function
cities['_found'] = find_city
Następnie następujące wyrażenia są równoważne. Możesz wywołać funkcję bezpośrednio lub przez odwołanie się do elementu dict, którego wartością jest funkcja.
>>> find_city (cities, 'New York')
NY
>>> cities['_found'](cities, 'New York')
NY
Czy ktoś może wyjaśnić, co to jest funkcja językowa i może gdzie jest grać w „prawdziwym” programowaniu? To ćwiczenie z zabawkami wystarczyło, by nauczyć mnie składni, ale nie zabrało mnie tam.