آموزش پایتون

مدیریت فایل

محدوده متغیرها (Scope) در پایتون

یک متغیر فقط از داخل منطقه ایجاد شده در دسترس است. به این منطقه، محدوده یا scope می گویند.

محدوده محلی (Local Scope)

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

مثال

یک متغیر ایجاد شده در داخل یک تابع در داخل آن تابع در دسترس است:

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

myfunc()
				
			

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

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

مثال

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

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

myfunc()
				
			

محدوده سراسری یا جهانی (Global Scope)

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

متغیرهای سراسری از هر محدوده ای، چه جهانی و چه محلی در دسترس هستند.

مثال

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

				
					x = 300

def myfunc():
  print(x)

myfunc()

print(x)
				
			

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

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

مثال

تابع، متغیر x محلی را چاپ می کند و سپس کد پایتون، متغیر x سراسری را چاپ می کند:

				
					x = 300

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

myfunc()

print(x)
				
			

کلیدواژه global

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

مثال

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

				
					def myfunc():
  global x
  x = 300

myfunc()

print(x)
				
			
همچنین اگر می‌خواهید در یک تابع تغییری در متغیر سراسری ایجاد کنید، از کلمه کلیدی global استفاده کنید.

مثال

برای تغییر مقدار یک متغیر سراسری در یک تابع، با استفاده از کلمه کلیدی global به متغیر مراجعه کنید:
				
					x = 300

def myfunc():
  global x
  x = 200

myfunc()

print(x)
				
			

آموزش پایتون

مدیریت فایل