গ্লোবাল ভেরিয়েবল — মডিউল লেভেলে ডিক্লেয়ার করা, প্রোগ্রামের যেকোনো জায়গা থেকে অ্যাক্সেসযোগ্য।
লোকাল ভেরিয়েবল — ফাংশন বা ব্লকের ভেতর ডিক্লেয়ার করা, শুধু সেটি স্কোপের ভেতরেই অ্যাক্সেসযোগ্য।
উদাহরণ
q = "I love coffee" # গ্লোবাল
def f():
p = "Me Tarzan, You Jane." # লোকাল
print(p)
f() # Me Tarzan, You Jane.
print(q) # I love coffee
ব্যাখ্যা
pশুধুf()-এর ভেতরেই ভিজিবল।qসব জায়গায় ভিজিবল (ফাংশন ভেতরেও, যদি লোকালqনা থাকে)।
শাডোइং (Shadowing)
x = 10
def func():
x = 20 # লোকাল x (গ্লোবাল x শাডো করা হয়েছে)
print(x) # 20
func()
print(x) # 10
গ্লোবাল মডিফিকেশন
x = 10
def func():
global x
x = 20
func()
print(x) # 20
বেস্ট প্র্যাকটিস
- গ্লোবাল ভেরিয়েবল কম ব্যবহার করুন।
- ফাংশন আর্গামেন্ট ও রিটার্ন ভ্যালু ব্যবহার করে ডেটা পাস করুন।
- শেয়ার্ড স্টেটের জন্য ক্লাস বা কনফিগ অবজেক্ট ব্যবহার করুন।