পাইথন প্রোগ্রামে ভিন্ন ভিন্ন ভেরিয়েবলের স্কোপ ভিন্ন হয়। ভেরিয়েবলটি কোথায় ডিক্লেয়ার করা হয়েছে সেটার উপর নির্ভর করে সেটি ফাংশনের ভিতরে অ্যাক্সেসIBLE হতে পারে বা নাও হতে পারে। কখনো কখনো ফাংশনের বাইরে থেকে ফাংশনের ভিতরের একটি ভেরিয়েবল মডিফাই করার প্রয়োজন পড়ে। এমন পরিস্থিতিতে ভেরিয়েবল নামের সাথে global কীওয়ার্ড ব্যবহার করা হয়।
global কীওয়ার্ড সম্পর্কে মূল পয়েন্টগুলো:
- ফাংশনের বাইরে ডিক্লেয়ার করা ভেরিয়েবল ডিফল্টভাবে গ্লোবাল ভেরিয়েবল।
- ফাংশনের ভিতরের ভেরিয়েবল মডিফাই করার জন্য
globalকীওয়ার্ড ব্যবহার করা হয়। globalকীওয়ার্ড ছাড়া ফাংশনের ভিতরের ভেরিয়েবল ডিফল্টভাবে লোকাল।
global ছাড়া
নিচের উদাহরণে global কীওয়ার্ড ছাড়া গ্লোবাল ভেরিয়েবল মডিফাই করার চেষ্টা করলে এরর হয়।
উদাহরণ
var = 321
def modify():
var = var * 2
print(var)
modify()
আউটপুট
UnboundLocalError: local variable 'var' referenced before assignment
global সহ
ফাংশনের ভিতরে global var ডিক্লেয়ার করলে ভেরিয়েবলটি মডিফাই করা যায়।
উদাহরণ
var = 321
def modify():
global var
var = var * 2
print(var)
modify()
আউটপুট
642
নেস্টেড ফাংশনে Global
নেস্টেড ফাংশন থাকলে ইনার ফাংশনে global ডিক্লেয়ার করতে হয় যাতে আউটার ফাংশনের ভেরিয়েবল মডিফাই করা যায়।
উদাহরণ
def outer_func():
var = 321
def modify():
global var
var = var * 2
print(var)
modify()
outer_func()
আউটপুট
642