⊗pyPmFnCl 23 of 129 menu

পাইথনে ক্লোজার

ক্লোজার (closure) বলতে বোঝায় একটি ফাংশনকে তার সাথে সংযুক্ত সমস্ত বাহ্যিক ভেরিয়েবল যা এটির জন্য অ্যাক্সেসযোগ্য।

পাইথনে, বেশিরভাগ ক্ষেত্রে, "ফাংশনের ক্লোজার" বলতে সেই ফাংশনটিকেই বোঝায় না, বরং precisely এর বাহ্যিক ভেরিয়েবলগুলিকেই বোঝায়।

ধরুন আমাদের কাছে নিম্নলিখিত outer ফাংশনটি আছে, যেখানে i ভেরিয়েবলটি ডিক্লেয়ার করা হয়েছে এবং একটি অভ্যন্তরীণ ফাংশন inner। এতে i-এ এক যোগ করা হবে। ভেরিয়েবলটি i সঠিকভাবে কাজ করার জন্য, আমরা এতে nonlocal ইনস্ট্রাকশন যোগ করি:

def outer(): i = 0 def inner(): nonlocal i i += 1 print(i) return inner

এখন আসুন বাহ্যিক ফাংশনটি res ভেরিয়েবলে রাখি এবং এটিকে বন্ধনী সহ কল করি:

res = outer() res() # 1 প্রিন্ট করবে

আসুন কয়েকবার res কল করি। কোড এক্সিকিউট হওয়ার পরে প্রতিবার কাউন্টার i এক করে বাড়বে:

res() # 2 প্রিন্ট করবে res() # 3 প্রিন্ট করবে res() # 4 প্রিন্ট করবে

যাইহোক, এখানে একটি গুরুত্বপূর্ণ সূক্ষ্মতা আছে - প্রতিটি outer ফাংশন কল তার নিজস্ব কাউন্টার বাড়াবে। আসুন প্রথম outer কলটি res1 ভেরিয়েবলে রাখি, এবং দ্বিতীয় কলটি - res2 ভেরিয়েবলে। তারপর সিরিয়ালে সেগুলো কনসোলে প্রিন্ট করি:

res1 = outer() res1() # 1 প্রিন্ট করবে res1() # 2 প্রিন্ট করবে res1() # 3 প্রিন্ট করবে res2 = outer() res2() # 1 প্রিন্ট করবে res2() # 2 প্রিন্ট করবে res2() # 3 প্রিন্ট করবে

নিম্নলিখিত কোডটি দেওয়া হয়েছে:

def outer(): i = 10 def inner(): nonlocal i i -= 2 print(i) return inner res1 = outer() res1() res1() res2 = outer() res2() res2() res2()

বলুন, কনসোলে কী প্রিন্ট হবে।

এমন একটি ফাংশন তৈরি করুন, যার প্রতিটি কল পরবর্তী ফিবোনাচি সংখ্যা দেবে।

এমন একটি ফাংশন তৈরি করুন, যা একটি রেঞ্জের মধ্যে একটি র্যান্ডম পূর্ণসংখ্যা দেবে, কিন্তু যাতে পরপর দুইবার একই সংখ্যা না আসে।

বাংলা
AfrikaansAzərbaycanБългарскиБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
আমরা সাইট পরিচালনা, বিশ্লেষণ এবং ব্যক্তিগতকরণের জন্য কুকি ব্যবহার করি। ডেটা প্রক্রিয়াকরণ গোপনীয়তা নীতি অনুযায়ী করা হয়।
সব গ্রহণ করুন কনফিগার করুন প্রত্যাখ্যান করুন