⊗pyPmFnNl 21 of 129 menu

পাইথনে ননলোকাল নির্দেশিকা

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

def outer(): i = 0 def inner(): i += 1 # আউটপুট দেবে [4, 9, 25] inner() return i

যাইহোক, inner-এর জন্য i ভেরিয়েবলটি লোকাল, পাইথন এটিকে অঘোষিত মনে করে এবং সেই অনুযায়ী ত্রুটি দেখায়। আগে এই ধরনের ত্রুটি global নির্দেশিকা ব্যবহার করে সংশোধন করা হত। যাইহোক এখানে i একটি বহিঃস্থ ভেরিয়েবল, তাই nonlocal নির্দেশিকা ব্যবহার করা উচিত। এটি গ্লোবাল স্কোপ বাদ দিয়ে, নিকটতম স্কোপ থেকে ভেরিয়েবলের তালিকাভুক্ত নামগুলো নেয়, অর্থাৎ i inner-এর ভিতরে উপরের ফাংশনে ডিক্লেয়ার করা ভেরিয়েবল থেকে নেওয়া হবে:

def outer(): i = 0 def inner(): nonlocal i i += 1 inner() return i print(outer()) # আউটপুট দেবে 1

নিচের কোডে একজন প্রোগ্রামার একটি ভুল করেছেন:

num = 10 def outer(): num = 5 def inner(): num -= 2 inner() return num print(outer())

এই কোডটিতে কী সমস্যা? খুঁজে বের করুন এবং সংশোধন করুন কোড লেখকের ভুল।

নিচের কোডে একজন প্রোগ্রামার একটি ভুল করেছেন:

num = 3 def outer(): num += 1 tst = num def inner(): tst = tst ** 3 inner() return tst print(outer())

এই কোডটিতে কী সমস্যা? খুঁজে বের করুন এবং সংশোধন করুন কোড লেখকের ভুল।

বাংলা
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
আমরা সাইট পরিচালনা, বিশ্লেষণ এবং ব্যক্তিগতকরণের জন্য কুকি ব্যবহার করি। ডেটা প্রক্রিয়াকরণ গোপনীয়তা নীতি অনুযায়ী করা হয়।
সব গ্রহণ করুন কনফিগার করুন প্রত্যাখ্যান করুন