"পাইথন ননলোকাল" এর জন্য একটি গুগল অনুসন্ধান প্রস্তাব, পিইপি 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
তবে এটি নিখুঁতভাবে অদ্ভুত অজগর, মনে হচ্ছে প্রথম সংস্করণ শুরুর দিকে কিছুটা স্পষ্ট হবে। জেনারেটর সঠিকভাবে ব্যবহার করা, ফিরে ফাংশন কল করে বিভ্রান্তির একটি সাধারণ বিষয়। প্রথম সংস্করণ স্পষ্টত একটি ফাংশন প্রদান করে।