পাইথনে ভেরিয়েবল অ্যাসাইনমেন্টের সময় তৈরি হয় (ডিক্লেয়ারেশন আলাদা লাগে না)। স্কোপ নির্ধারণ করে ভেরিয়েবল কোথায় অ্যাক্সেসযোগ্য।
লোকাল vs গ্লোবাল উদাহরণ
x = 141 # গ্লোবাল
def foo():
x = 424 # লোকাল ভেরিয়েবল (নতুন)
print(x) # 424
foo()
print(x) # 141 (গ্লোবাল অপরিবর্তিত)
ব্যাখ্যা
- ফাংশন ভেতর
x = 424লিখলে একটি নতুন লোকাল ভেরিয়েবল তৈরি হয়। - গ্লোবাল
xঅপরিবর্তিত থাকে। - ফাংশন এন্ড হলে লোকাল
xডিস্ট্রয় হয়।
global কিওয়ার্ড ব্যবহার
x = 141
def foo():
global x
x = 424
print(x) # 424
foo()
print(x) # 424 (গ্লোবাল পরিবর্তিত)
nonlocal কিওয়ার্ড (নেস্টেড ফাংশনে)
def outer():
x = "enclosing"
def inner():
nonlocal x
x = "modified"
inner()
print(x) # modified
outer()
বেস্ট প্র্যাকটিস
- ভেরিয়েবলের স্কোপ যতটা সম্ভব ন্যারো রাখুন।
globalকম ব্যবহার করুন — কোড বুঝতে কষ্ট হয়।- ক্লাস বা ডেটা ক্লাস ব্যবহার করে স্টেট ম্যানেজ করুন।