Sou iniciante em python e acabei de aprender uma técnica envolvendo dicionários e funções. A sintaxe é fácil e parece uma coisa trivial, mas meus sentidos em python estão formigando. Algo me diz que esse é um conceito profundo e muito pitônico e não estou percebendo sua importância. Alguém pode colocar um nome nessa técnica e explicar como / por que é útil?
A técnica é quando você tem um dicionário python e uma função que pretende usar nele. Você insere um elemento extra no dict, cujo valor é o nome da função. Quando você estiver pronto para chamar a função, emita-a indiretamente consultando o elemento dict, não a função pelo nome.
O exemplo do qual estou trabalhando é de Learn Python the Hard Way, 2nd Ed. (Esta é a versão disponível quando você se inscreve no Udemy.com ; infelizmente, a versão HTML gratuita ao vivo é atualmente o Ed 3 e não inclui mais este exemplo).
Parafrasear:
# 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
Em seguida, as seguintes expressões são equivalentes. Você pode chamar a função diretamente ou referenciando o elemento dict cujo valor é a função.
>>> find_city (cities, 'New York')
NY
>>> cities['_found'](cities, 'New York')
NY
Alguém pode explicar qual é o recurso de linguagem e talvez onde ele toca na programação "real"? Esse exercício de brinquedo foi suficiente para me ensinar a sintaxe, mas não me levou até lá.