দুই ধরনের ভেরিয়েবল আছে:গ্লোবাল ভেরিয়েবল এবং স্থানীয় ভেরিয়েবল।
গ্লোবাল ভেরিয়েবলের স্কোপ হল পুরো প্রোগ্রাম যেখানে লোকাল ভেরিয়েবলের সুযোগ ফাংশনের মধ্যে সীমাবদ্ধ যেখানে এটি সংজ্ঞায়িত করা হয়েছে।
def func(): x = "Python" print(x) print(s) s = "Tutorialspoint" print(s) func() print(x)
উপরের প্রোগ্রামে- x হল একটি লোকাল ভেরিয়েবল যেখানে s হল একটি গ্লোবাল ভেরিয়েবল, আমরা লোকাল ভেরিয়েবলটি শুধুমাত্র ফাংশনের মধ্যেই অ্যাক্সেস করতে পারি যেটি উপরে সংজ্ঞায়িত করা হয়েছে (func()) এবং এর সুযোগের বাইরে লোকাল ভেরিয়েবলকে কল করার চেষ্টা করব(func()) একটি ত্রুটির মাধ্যমে। যাইহোক, আমরা প্রোগ্রামে সংজ্ঞায়িত ফাংশন (func()) সহ প্রোগ্রামের যেকোনো জায়গায় গ্লোবাল ভেরিয়েবলকে কল করতে পারি।
স্থানীয় ভেরিয়েবল
স্থানীয় ভেরিয়েবলগুলি শুধুমাত্র তাদের স্কোপের মধ্যে পৌঁছানো যেতে পারে (যেমন func() উপরে)।
নিচের প্রোগ্রামের মত- এখানে দুটি স্থানীয় ভেরিয়েবল আছে - x এবং y।
def sum(x,y): sum = x + y return sum print(sum(5, 10))
আউটপুট
15
x এবং y ভেরিয়েবলগুলি শুধুমাত্র ফাংশন sum() এর ভিতরে কাজ/ব্যবহৃত হবে এবং তারা ফাংশনের বাইরে থাকে না। তাই তাদের সুযোগের বাইরে স্থানীয় ভেরিয়েবল ব্যবহার করার চেষ্টা করা হয়, NameError এর মাধ্যমে। তাই স্পষ্টতই নিচের লাইন কাজ করবে না।
print(x)
গ্লোবাল ভেরিয়েবল
একটি গ্লোবাল ভেরিয়েবল প্রোগ্রামের যেকোনো জায়গায় ব্যবহার করা যেতে পারে কারণ এর স্কোপ হল পুরো প্রোগ্রাম।
চলুন একটি খুব সহজ উদাহরণ দিয়ে গ্লোবাল ভেরিয়েবল বুঝতে পারি -
z = 25 def func(): global z print(z) z=20 func() print(z)
আউটপুট
25 20
একটি কলিং ফাংশন(), সমগ্র প্রোগ্রামের জন্য বিশ্বব্যাপী পরিবর্তনশীল মান পরিবর্তন করা হয়।
নীচের উদাহরণটি স্থানীয় এবং বিশ্বব্যাপী ভেরিয়েবল এবং ফাংশন প্যারামিটারের সংমিশ্রণ দেখায় -
def func(x, y): global a a = 45 x,y = y,x b = 33 b = 17 c = 100 print(a,b,x,y) a,b,x,y = 3,15,3,4 func(9,81) print (a,b,x,y)
আউটপুট
45 17 81 9 45 15 3 4