मैं एक अजगर शुरुआत कर रहा हूं, और मैंने सिर्फ एक तकनीक सीखी है जिसमें शब्दकोश और फ़ंक्शन शामिल हैं। वाक्यविन्यास आसान है और यह एक तुच्छ चीज की तरह लगता है, लेकिन मेरी अजगर इंद्रियां झुनझुनी होती हैं। कुछ मुझे बताता है कि यह एक गहरी और बहुत ही पवित्र अवधारणा है और मैं इसके महत्व को नहीं समझ रहा हूं। क्या कोई इस तकनीक का नाम रख सकता है और समझा सकता है कि यह कैसे / क्यों उपयोगी है?
तकनीक तब होती है जब आपके पास एक अजगर शब्दकोश और एक फ़ंक्शन होता है जिसे आप उस पर उपयोग करने का इरादा रखते हैं। आप एक अतिरिक्त तत्व को हुक में सम्मिलित करते हैं, जिसका मान फ़ंक्शन का नाम है। जब आप फ़ंक्शन को कॉल करने के लिए तैयार होते हैं, तो आप अप्रत्यक्ष रूप से ताना तत्व को संदर्भित करते हुए कॉल जारी करते हैं, नाम से फ़ंक्शन नहीं।
मैं जिस उदाहरण से काम कर रहा हूं, वह लर्निंग पायथन द हार्ड वे, 2 थ एड से है। (यह उपलब्ध संस्करण है जब आप Udemy.com के माध्यम से साइन अप करते हैं , दुख की बात है कि लाइव मुफ्त HTML संस्करण वर्तमान में एड 3 है, और अब यह उदाहरण शामिल नहीं है)।
विवरण बताने के लिए:
# 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
फिर निम्नलिखित अभिव्यक्तियाँ समकक्ष हैं। आप फ़ंक्शन को सीधे कॉल कर सकते हैं, या उस मुख्य तत्व को संदर्भित कर सकते हैं जिसका मान फ़ंक्शन है।
>>> find_city (cities, 'New York')
NY
>>> cities['_found'](cities, 'New York')
NY
क्या कोई समझा सकता है कि यह किस भाषा की विशेषता है, और शायद यह "वास्तविक" प्रोग्रामिंग में खेलने के लिए कहाँ आता है? यह टॉय एक्सरसाइज मुझे सिंटैक्स सिखाने के लिए काफी थी, लेकिन मुझे वहां तक नहीं ले गई।