কখনও কখনও আমরা একটি ভেরিয়েবল ঘোষণা করি কিন্তু আমাদেরকে এর ঘোষণার বর্তমান সুযোগের বাইরে মানগুলি পরিবর্তন বা অ্যাক্সেস করতে হতে পারে যা বর্তমান প্রোগ্রামের যে কোনও জায়গায় থাকতে পারে। এই ধরনের পরিস্থিতিতে, আমরা যেখানে ভেরিয়েবল ঘোষণা করা হয় সেখানে ফাংশনের ভিতরে ভেরিয়েবল নামের সাথে গ্লোবাল কীওয়ার্ড ব্যবহার করি। যদি ভেরিয়েবলটি একটি ফাংশনের ভিতরে না থাকে, তাহলে এটি স্বয়ংক্রিয়ভাবে স্কোপে বিশ্বব্যাপী হয়।
একটি ফাংশনের বাইরে পরিবর্তনশীল
নীচের উদাহরণে আমরা একটি ফাংশনের বাইরে একটি মান দেখতে পাই, কিন্তু আমরা একটি ফাংশনের ভিতরে থেকে এটি অ্যাক্সেস করতে সক্ষম। কারণ এই ধরনের ভেরিয়েবল ইতিমধ্যেই বিশ্বব্যাপী পরিসরে।
উদাহরণ
x = 56 def func(): y = x *2 return y print(func())
উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয়:
আউটপুট
112
একটি ফাংশনের ভিতরে পরিবর্তনশীল
পরবর্তী উদাহরণে আমরা একটি ফাংশনের ভিতরে একটি ভেরিয়েবলের মান পরিবর্তন করার চেষ্টা করি এবং একটি ত্রুটি পাই৷
৷উদাহরণ
x = 56 def func(): y = x *2 x = x+2 return y print(func())
উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয়:
আউটপুট
nboundLocalError: local variable 'x' referenced before assignment
একটি ফাংশনের ভিতরে গ্লোবাল স্কোপ সহ একটি ভেরিয়েবলের মান পরিবর্তন করার একমাত্র উপায় হল এটিকে একটি ফাংশনের ভিতরে একটি গ্লোবাল ভেরিয়েবল হিসাবে ঘোষণা করা৷
উদাহরণ
x = 56 def func(): global x x = x + 2 y = x *2 return y print(func())
উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয়
আউটপুট
116
একটি নেস্টেড ফাংশনের ভিতরে পরিবর্তনশীল
নেস্টেড ফাংশনের ক্ষেত্রে, নীচের উদাহরণে দেখানো হিসাবে আমরা অন্তর্নিহিত ফাংশনে গ্লোবাল ভেরিয়েবল তৈরি করি।
উদাহরণ
def func_out(): x = 56 def func_in(): global x x = 20 print("x is: ",x) x = x + 3 y = x *2 print ("y is: ",y) func_in() func_out() print("x is: ",x)
উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয়:
আউটপুট
x is: 20 y is: 46 x is: 23