কম্পিউটার টিউটোরিয়াল

পাইথন প্রোগ্রামে global কিওয়ার্ড


কখনো কখনো আমরা একটি ভেরিয়েবল ডিক্লেয়ার করি কিন্তু এর মান বর্তমান স্কোপের বাইরে থেকে মডিফাই বা অ্যাক্সেস করতে হতে পারে যা করেন্ট প্রোগ্রামে যেকোনো জায়গায় থাকতে পারে। এই পরিস্থিতিতে, আমরা ভেরিয়েবলের নামের সাথে global কিওয়ার্ড ব্যবহার করি সেই ফাংশনের ভেতরে যেখানে ভেরিয়েবলটি ডিক্লেয়ার করা হয়েছে। যদি ভেরিয়েবলটি ফাংশনের বাইরে থাকে, তবে এটি স্বয়ংক্রিয়ভাবে গ্লোবাল স্কোপে থাকে।

ফাংশনের বাইরে ভেরিয়েবল

নিচের উদাহরণে আমরা একটি ফাংশনের বাইরে একটি মান দেখি, কিন্তু আমরা সেটি ফাংশনের ভেতর থেকে অ্যাক্সেস করতে পারি। কারণ এমন একটি ভেরিয়েবল ইতিমধ্যে গ্লোবাল স্কোপে থাকে।

উদাহরণ

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())

উপরের কোড রান করলে নিচের ফলাফল পাওয়া যায়:

আউটপুট

UnboundLocalError: 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
  1. পাইথন প্রোগ্রাম কীভাবে রান করবেন?

  2. পাইথন প্রোগ্রামে ক্যালেন্ডার

  3. দেওয়া স্ট্রিংটি পাইথন কিওয়ার্ড কিনা চেক করার প্রোগ্রাম

  4. কুইকসর্টের পাইথন প্রোগ্রাম