পরিচয়
| নেমস্পেস | স্কোপ | অবস্থান |
|---|---|---|
| বিল্ট-ইন | পুরো ইন্টারপ্রেটার (সব স্ক্রিপ্ট) | 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 # বিল্ট-ইন ফিরে পাওয়ার জন্য