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

পাইথনে বিল্ট-ইন এবং গ্লোবাল নেমস্পেসের পার্থক্য

পরিচয়

নেমস্পেসস্কোপঅবস্থান
বিল্ট-ইনপুরো ইন্টারপ্রেটার (সব স্ক্রিপ্ট)builtins মডিউল (Py3) / __builtin__ (Py2)
গ্লোবালএকটি মডিউল (একটি ফাইল)মডিউল-লেভেল

বিল্ট-ইন নেমস্পেস

  • সব বিল্ট-ইন ফাংশন (print, len, open), এক্সসেপশন (ValueError), টাইপ (int, str) এখানে থাকে
  • ইন্টারপ্রেটার শুরু হলে লোড হয়, সব স্ক্রিপ্ট শেয়ার করে
  • dir(builtins) দিয়ে দেখুন

গ্লোবাল নেমস্পেস

  • প্রতিটি মডিউলের (.py ফাইলের) নিজস্ব গ্লোবাল নেমস্পেস থাকে
  • মডিউল-লেভেল ভেরিয়েবল, ফাংশন, ক্লাস এখানে থাকে
  • globals() দিয়ে এক্সেস করুন

নেম রেজলুশন অর্ডার (LEGB Rule)

Local → Enclosing → Global (Module) → Built-in

একই নামে ভেরিয়েবল থাকলে Locals প্রাধান্য পায়, তারপর Enclosing, তারপর Module Global, সবশেষে Built-in।

উদাহরণ

x = 10  # মডিউল গ্লোবাল

def func():
    x = 20  # লোকাল
    print(x)  # 20 (লোকাল)

func()
print(x)  # 10 (গ্লোবাল)

# বিল্ট-ইন ওভাররাইড (প্রস্তাবিত নয়)
len = "oops"  # এখন এই মডিউলে len() ফাংশন কাজ করবে না
# del len  # বিল্ট-ইন ফিরে পাওয়ার জন্য
  1. Tkinter(Python)-এ root.destroy() এবং root.quit() এর পার্থক্য কী?

  2. Python-এ tkinter এবং tkinter.ttk উইজেটের পার্থক্য কী?

  3. পাইথনে 'except Exception as e' এবং 'except Exception, e'-র পার্থক্য

  4. পাইথনে গ্লোবাল এবং লোকাল ভেরিয়েবলের পার্থক্য