Ich bin ein Python-Anfänger und habe gerade eine Technik mit Wörterbüchern und Funktionen gelernt. Die Syntax ist einfach und scheint trivial zu sein, aber meine Python-Sinne kribbeln. Etwas sagt mir, dass dies ein tiefgründiges und sehr pythonisches Konzept ist, und ich verstehe seine Bedeutung nicht ganz. Kann jemand dieser Technik einen Namen geben und erklären, wie / warum sie nützlich ist?
Die Technik ist, wenn Sie ein Python-Wörterbuch und eine Funktion haben, die Sie darauf anwenden möchten. Sie fügen ein zusätzliches Element in das Diktat ein, dessen Wert der Name der Funktion ist. Wenn Sie bereit sind, die Funktion aufzurufen, geben Sie den Aufruf indirekt aus, indem Sie sich auf das dict-Element beziehen, nicht auf die Funktion nach Namen.
Das Beispiel, an dem ich arbeite, stammt von Learn Python the Hard Way, 2nd Ed. (Dies ist die Version, die verfügbar ist, wenn Sie sich über Udemy.com anmelden . Leider ist die kostenlose Live-HTML-Version derzeit Ed 3 und enthält dieses Beispiel nicht mehr.)
Umschreiben:
# 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
Dann sind die folgenden Ausdrücke äquivalent. Sie können die Funktion direkt aufrufen oder auf das dict-Element verweisen, dessen Wert die Funktion ist.
>>> find_city (cities, 'New York')
NY
>>> cities['_found'](cities, 'New York')
NY
Kann jemand erklären, um welche Sprachfunktion es sich handelt und wo es beim "echten" Programmieren zu spielen kommt? Diese Spielzeugübung reichte aus, um mir die Syntax beizubringen, brachte mich aber nicht ganz hin.