Saya pemula python, dan saya baru belajar teknik yang melibatkan kamus dan fungsi. Sintaksnya mudah dan sepertinya hal yang sepele, tetapi indera python saya kesemutan. Sesuatu mengatakan kepada saya bahwa ini adalah konsep yang dalam dan sangat pythonic dan saya tidak begitu memahami pentingnya. Dapatkah seseorang memberi nama pada teknik ini dan menjelaskan bagaimana / mengapa ini berguna?
Tekniknya adalah ketika Anda memiliki kamus python dan fungsi yang ingin Anda gunakan di dalamnya. Anda memasukkan elemen tambahan ke dalam dict, yang nilainya adalah nama fungsi. Ketika Anda siap untuk memanggil fungsi Anda mengeluarkan panggilan secara tidak langsung dengan merujuk pada elemen dict, bukan fungsi dengan nama.
Contoh yang saya kerjakan adalah dari Learn Python the Hard Way, 2nd Ed. (Ini adalah versi yang tersedia ketika Anda mendaftar melalui Udemy.com ; sayangnya versi HTML gratis langsung saat ini Ed 3, dan tidak lagi menyertakan contoh ini).
Mengutip:
# 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
Kemudian ekspresi berikut ini setara. Anda dapat memanggil fungsi secara langsung, atau dengan merujuk elemen dict yang nilainya adalah fungsi.
>>> find_city (cities, 'New York')
NY
>>> cities['_found'](cities, 'New York')
NY
Dapatkah seseorang menjelaskan fitur bahasa apa ini, dan mungkin di mana ia bisa bermain dalam pemrograman "nyata"? Latihan mainan ini sudah cukup untuk mengajari saya sintaks, tetapi tidak membawa saya ke sana.