কম্পিউটার টিউটোরিয়াল

পাইথনে নেমস্পেস (Namespace) এবং স্কোপ (Scope) - ভেরিয়েবল নাম ব্যবস্থাপনা

পাইথনে আমরা ভেরিয়েবল, ফাংশন, লাইব্রেরি, মডিউল ইত্যাদি নিয়ে কাজ করি। সম্ভব है আপনি যে ভেরিয়েবল নাম ব্যবহার করতে চাচ্ছেন সেটি ইতিমধ্যে অন্য কোনো ভেরিয়েবল, ফাংশন বা মেথডের নামে আছে। এমন পরিস্থিতিতে পাইথন প্রোগ্রাম এই সব নাম কীভাবে ম্যানেজ করে সেটি জানা দরকার। এটাকেই নেমস্পেস (Namespace) বলে।

নেমস্পেস মূলত তিন ক্যাটাগরির:

  • লোকাল নেমস্পেস (Local Namespace): একটি প্রোগ্রামে ডিক্লেয়ার করা সব ফাংশন এবং ভেরিয়েবলের নাম এই নেমস্পেসে থাকে। এটি প্রোগ্রাম চলার সময় পর্যন্ত আছে।
  • গ্লোবাল নেমস্পেস (Global Namespace): এই নেমস্পেসে পাইথন প্রোগ্রামে ব্যবহৃত মডিউলগুলোর সব ফাংশন এবং ভেরিয়েবলের নাম থাকে। এটি লোকাল নেমস্পেসকে সমেটে রাখে।
  • বিল্ট-ইন নেমস্পেস (Built-in Namespace): এটি হাইয়েস্ট লেভেলের নেমস্পেস যা পাইথন ইন্টারপ্রেটারের সাথে ডিফল্টভাবে আসে। এটি গ্লোবাল নেমস্পেসকে সমেটে রাখে যা আবার লোকাল নেমস্পেসকে সমেটে রাখে।

পাইথনে নেমস্পেস (Namespace) এবং স্কোপ (Scope) - ভেরিয়েবল নাম ব্যবস্থাপনা

পাইথনে স্কোপ (Scope)

নেমস্পেসের একটি লাইফটাইম থাকে যখন সেটি উপলব্ধ থাকে। এটাকেই স্কোপ (Scope) বলে। এছাড়া স্কোপ কোডিং রিজনে ডিপেন্ড করে যেখানে ভেরিয়েবল বা অবজেক্ট লোকেটেড। নিচের প্রোগ্রামে দেখুন কিভাবে ইনার লুপে ডিক্লেয়ার করা ভেরিয়েবল আউটার লুপে অ্যাকসেসিবল কিন্তু বিপরীত হয় না। এছাড়া আউটার ফাংশনের নামও কিভাবে গ্লোবাল ভেরিয়েবল হয়ে যায় সেটাও লক্ষ্য করুন।

উদাহরণ

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
  1. পাইথন নেমস্পেস সম্পর্কে আপনি কী জানেন?

  2. পাইথন নেমস্পেস এবং ভেরিয়েবল স্কোপ ব্যাখ্যা

  3. পাইথনে নেমস্পেস কী?

  4. পাইথন ভেরিয়েবল মাস্টার করুন: ডিক্লেয়ার ও ব্যবহার করার প্রফেশনাল গাইড