Je suis un débutant en python et je viens d’apprendre une technique impliquant des dictionnaires et des fonctions. La syntaxe est simple et cela semble être une chose triviale, mais mes sens python sont picotements. Quelque chose me dit que c'est un concept profond et très pythonique et je ne comprends pas tout à fait son importance. Quelqu'un peut-il nommer cette technique et expliquer comment / pourquoi elle est utile?
La technique consiste à utiliser un dictionnaire python et une fonction à utiliser. Vous insérez un élément supplémentaire dans le dict, dont la valeur est le nom de la fonction. Lorsque vous êtes prêt à appeler la fonction, vous émettez l'appel indirectement en vous référant à l'élément dict, pas à la fonction par son nom.
L'exemple sur lequel je travaille est tiré de Learn Python The Hard Way, 2e éd. (C'est la version disponible lorsque vous vous inscrivez via Udemy.com ; malheureusement, la version HTML gratuite en direct est actuellement Ed 3 et n'inclut plus cet exemple).
Paraphraser:
# 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
Alors les expressions suivantes sont équivalentes. Vous pouvez appeler la fonction directement ou en référençant l'élément dict dont la valeur est la fonction.
>>> find_city (cities, 'New York')
NY
>>> cities['_found'](cities, 'New York')
NY
Quelqu'un peut-il expliquer de quelle langue il s'agit, et peut-être de la "vraie" programmation? Cet exercice de jouet était suffisant pour m'apprendre la syntaxe, mais ne m'a pas pris tout le chemin.