محدوده‌های Python

متغیرها تنها در محدوده ایجاد شده قابل استفاده هستند. این به عنوان محدوده شناخته می‌شود.

محدوده محلی

متغیرهایی که در داخل تابع ایجاد می‌شوند، محدوده محلی تابع هستند و تنها در داخل همان تابع قابل استفاده‌اند.

مثال

متغیرهایی که در داخل تابع ایجاد می‌شوند، تنها در داخل همان تابع قابل استفاده هستند:

def myfunc():
  x = 100
  print(x)
myfunc()

اجرای مثال

توابع در توابع

همانطور که در مثال بالا نشان داده شده است، متغیر x در خارج تابع قابل استفاده نیست، اما برای هر تابع در داخل تابع قابل استفاده است:

مثال

توانایی دسترسی به متغیر محلی از یک تابع در داخل تابع:

def myfunc():
  x = 100
  def myinnerfunc():
    print(x)
  myinnerfunc()
myfunc()

اجرای مثال

محدوده جهانی

متغیرهایی که در بدنه کد پایتون ایجاد می‌شوند، متغیرهای جهانی هستند و به محدوده جهانی تعلق دارند.

متغیر جهانی در هر محدوده‌ای (جهانی و محلی) قابل استفاده است.

مثال

متغیرهایی که در خارج تابع ایجاد می‌شوند، متغیرهای جهانی هستند و هر کسی می‌تواند از آن‌ها استفاده کند:

x = 100
def myfunc():
  print(x)
myfunc()
print(x)

اجرای مثال

نام‌گذاری متغیر

اگر در داخل و خارج تابع از متغیرهای同名 استفاده کنید، پایتون آن‌ها را به عنوان دو متغیر جداگانه می‌پندارد، یکی در محدوده جهانی قابل استفاده است (در خارج تابع) و دیگری در محدوده محلی قابل استفاده است (در داخل تابع):

مثال

این تابع مقدار متغیر محلی x را چاپ می‌کند و سپس کد مقدار متغیر جهانی x را نیز چاپ می‌کند:

x = 100
def myfunc():
  x = 200
  print(x)
myfunc()
print(x)

اجرای مثال

کلیدواژه Global

اگر نیاز دارید که یک متغیر جهانی ایجاد کنید اما در محدوده محلی گیر کرده‌اید، می‌توانید از کلیدواژه global استفاده کنید.

کلیدواژه global متغیر را به متغیر جهانی تبدیل می‌کند.

مثال

اگر از کلیدواژه global استفاده کنید، متغیر به محدوده جهانی تعلق دارد:

def myfunc():
  global x
  x = 100
myfunc()
print(x)

اجرای مثال

همچنین، اگر بخواهید مقدار یک متغیر جهانی را در داخل تابع تغییر دهید، از کلیدواژه global استفاده کنید.

مثال

برای تغییر مقدار یک متغیر جهانی در داخل تابع، از کلیدواژه global برای اشاره به این متغیر استفاده کنید:

x = 100
def myfunc():
  global x
  x = 200
myfunc()
print(x)

اجرای مثال