"पायथन नॉनोकॉक" के लिए एक Google खोज ने प्रस्ताव, पीईपी 3104 को बदल दिया , जो पूरी तरह से वाक्यविन्यास और कथन के पीछे तर्क का वर्णन करता है। संक्षेप में, यह global
कथन के समान ही कार्य करता है , सिवाय इसके कि इसका उपयोग उन चर को संदर्भित करने के लिए किया जाता है जो फ़ंक्शन के लिए न तो वैश्विक हैं और न ही स्थानीय हैं।
यहाँ एक संक्षिप्त उदाहरण है कि आप इसके साथ क्या कर सकते हैं। इसका उपयोग करने के लिए काउंटर जनरेटर को फिर से लिखा जा सकता है ताकि यह बंद होने के साथ भाषाओं के मुहावरों की तरह दिखे।
def make_counter():
count = 0
def counter():
nonlocal count
count += 1
return count
return counter
जाहिर है, आप इसे एक जनरेटर के रूप में लिख सकते हैं, जैसे:
def counter_generator():
count = 0
while True:
count += 1
yield count
लेकिन जब यह पूरी तरह से मुहावरेदार है, तो ऐसा लगता है कि शुरुआती के लिए पहला संस्करण थोड़ा अधिक स्पष्ट होगा। जेनरेटरों का सही उपयोग करके, लौटाए गए फ़ंक्शन को कॉल करके, भ्रम की एक सामान्य बात है। पहला संस्करण स्पष्ट रूप से एक फ़ंक्शन देता है।