अधिकांश कार्यों का नाम आसान है। आम तौर पर, एक फ़ंक्शन नाम उस पर आधारित होता है जो यह करता है या इसके परिणामस्वरूप इसका परिणाम क्या होता है।पायथन जनरेटर फ़ंक्शन नाम - एक उपसर्ग सहायक है?
जनरेटर फ़ंक्शन के मामले में, हालांकि, परिणाम किसी अन्य प्रकार पर एक पुनरावर्तनीय हो सकता है।
def sometype(iterable):
for x in iterable:
yield some_transformation(x)
sometype
नाम भ्रामक लगता है, के बाद से समारोह नामित प्रकार का ऑब्जेक्ट वापस नहीं करता है। यह वास्तव में sometype
से अधिक पुनरावृत्त है।
iter_sometype
या gen_sometype
जैसे नाम Hungarian Notation जैसा थोड़ा सा लगता है। हालांकि, यह समारोह के इरादे को स्पष्ट करने के लिए भी प्रतीत होता है।
आगे बढ़ते हुए, कई और विशेष मामले हैं, जहां एक उपसर्ग उपयोगी हो सकता है। ये सामान्य उदाहरण हैं, जिनमें से कुछ itertools में उपलब्ध हैं। हालांकि, हमें अक्सर एक संस्करण लिखना पड़ता है जिसमें कुछ एल्गोरिदमिक जटिलता होती है जो इसे itertools
के समान बनाता है, लेकिन एकदम सही फिट नहीं है।
def reduce_sometype(iterable):
summary = sometype()
for x in iterable:
if some_rule(x):
yield summary
summary= sometype()
summary.update(x)
def map_sometype(iterable):
for x in iterable:
yield some_complex_mapping(x)
def filter_sometype(iterable):
for x in iterable:
if some_complex_rule(x):
yield x
iter_
, map_
, reduce_
, filter_
उपसर्ग में मदद करता है एक जनरेटर समारोह का नाम स्पष्ट? या यह सिर्फ दृश्य अव्यवस्था है?
यदि कोई उपसर्ग सहायक है, तो आपके पास कौन से उपसर्ग सुझाव हैं?
वैकल्पिक रूप से, यदि कोई प्रत्यय सहायक है, तो आपके पास पर्याप्त प्रत्यय सुझाव क्या हैं?
मुझे लगता है कि आप सामान्यीकृत प्रकार से अधिक हैं .. मेरा मतलब है, अधिकांश आपके जेनरेटर एक्सप्रेशन एला '(कुछ_मैपिंग (x) को एक्स में अक्षरों के रूप में सीधे लिखेंगे)। पहला व्यक्ति वास्तव में कुछ भी कम नहीं करता है, यह मैपिंग की तरह अधिक है क्योंकि प्रत्येक 'x' के लिए एक नया 'sometype' है। –
@ THC4k: कृपया कल्पना करें कि वे अधिक जटिल हैं।'Itertools' के भीतर आसानी से फिट करने के लिए बहुत जटिल है। इतना जटिल नहीं है कि वे बुनियादी कार्यात्मक प्रोग्रामिंग सिद्धांतों का उल्लंघन करते हैं। उदाहरण के लिए, उनमें ऑप्टिमाइज़ेशन के रूप में बहुत से प्रारंभिक सेटअप कार्य शामिल हो सकते हैं। –