পাইথনে আমরা ভেরিয়েবল, ফাংশন, লাইব্রেরি এবং মডিউল ইত্যাদি নিয়ে কাজ করি। আপনি যে ভেরিয়েবলটি ব্যবহার করতে যাচ্ছেন তার নামটি অন্য ভেরিয়েবলের নাম বা অন্য একটি ফাংশন বা অন্য পদ্ধতির নাম হিসাবে ইতিমধ্যেই বিদ্যমান রয়েছে। এই ধরনের পরিস্থিতিতে, আমাদের শিখতে হবে কিভাবে এই সমস্ত নামগুলি একটি পাইথন প্রোগ্রাম দ্বারা পরিচালিত হয়। এটি হল নামস্থানের ধারণা।
নিচের নামস্থানের তিনটি বিভাগ রয়েছে
-
স্থানীয় নামস্থান:একটি প্রোগ্রাম দ্বারা ঘোষিত ফাংশন এবং ভেরিয়েবলের সমস্ত নাম এই নামস্থানে রাখা হয়। যতক্ষণ প্রোগ্রাম চলে ততক্ষণ এই নামস্থানটি বিদ্যমান থাকে।
-
গ্লোবাল নেমস্পেস:এই নেমস্পেসটিতে সমস্ত ফাংশন এবং অন্যান্য ভেরিয়েবলের নাম রয়েছে যা পাইথন প্রোগ্রামে ব্যবহৃত মডিউলগুলির অন্তর্ভুক্ত। এটি স্থানীয় নামস্থানের অংশ এমন সমস্ত নামকে অন্তর্ভুক্ত করে৷
৷ -
বিল্ট-ইন নেমস্পেস:এটি হল সর্বোচ্চ স্তরের নামস্থান যা পাইথন ইন্টারপ্রেটারের অংশ হিসাবে উপলব্ধ ডিফল্ট নামের সাথে উপলব্ধ যা প্রোগ্রামিং পরিবেশ হিসাবে লোড করা হয়। এটি গ্লোবাল নেমস্পেসকে অন্তর্ভুক্ত করে যা ফলস্বরূপ স্থানীয় নামস্থানকে অন্তর্ভুক্ত করে।
পাইথনে সুযোগ
নামস্থানের একটি জীবনকাল থাকে যখন এটি উপলব্ধ থাকে। একে স্কোপও বলা হয়। এছাড়াও সুযোগটি কোডিং অঞ্চলের উপর নির্ভর করবে যেখানে পরিবর্তনশীল বা বস্তুটি অবস্থিত। আপনি নীচের প্রোগ্রামে দেখতে পাচ্ছেন যে কীভাবে একটি অভ্যন্তরীণ লুপে ঘোষিত ভেরিয়েবলগুলি বাইরের লুপে উপলব্ধ কিন্তু এর বিপরীতে নয়। এছাড়াও অনুগ্রহ করে নোট করুন কিভাবে বাইরের ফাংশনের নামটিও একটি গ্লোবাল ভেরিয়েবলের অংশ হয়ে যায়।
উদাহরণ
prog_var = 'Hello' def outer_func(): outer_var = 'x' def inner_func(): inner_var = 'y' print(dir(), ' Local Variable in Inner function') inner_func() print(dir(), 'Local variables in outer function') outer_func() print(dir(), 'Global variables ')
উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয় -
আউটপুট
['inner_var'] Local Variable in Inner function ['inner_func', 'outer_var'] Local variables in outer function ['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'outer_func', 'prog_var'] Global variables