Ben bir piton acemiyim ve sözlükleri ve işlevleri içeren bir teknik öğrendim. Sözdizimi kolaydır ve önemsiz bir şeye benziyor, ancak piton duyumlar karıncalanıyor. Bir şey bana bunun derin ve çok pitonik bir kavram olduğunu söylüyor ve önemini tam olarak anlamadım. Birisi bu tekniğe bir isim koyabilir ve nasıl / neden işe yaradığını açıklayabilir mi?
Tekniği, bir python sözlüğünüz ve üzerinde kullanmayı düşündüğünüz bir işlevin olduğu zamandır. Değere, işlevin adı olan dikte ek bir öğe eklersiniz. Fonksiyonu çağırmaya hazır olduğunuzda , fonksiyona isme göre değil, dict elemanına bakarak aramayı dolaylı olarak düzenlersiniz.
Çalıştığım örnek, Python'u Zor Yoldan Öğren, 2nd Ed. (Bu, Udemy.com üzerinden kaydolduğunuzda kullanılabilen sürümdür ; ne yazık ki canlı ücretsiz HTML sürümü şu anda Ed 3'tür ve artık bu örneği içermemektedir).
Kelimeleri ifade etmek:
# 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
Sonra aşağıdaki ifadeler eşdeğerdir. Fonksiyonu doğrudan ya da değeri fonksiyon olan dict elemanına başvurarak arayabilirsiniz.
>>> find_city (cities, 'New York')
NY
>>> cities['_found'](cities, 'New York')
NY
Birisi bunun hangi dil özelliğini ve belki de “gerçek” programlamada oynayacağı yeri açıklayabilir mi? Bu oyuncak egzersizi bana sözdizimini öğretmek için yeterliydi, ama beni oraya kadar götürmedi.