دامنه (Scope) متغیرها در پایتون (Python) محلی و سراسری یا عمومی

دامنه (Scope) متغیرها در پایتون (Python) محلی و سراسری یا عمومی

زمان مطالعه

5 دقیقه

تعداد بازدید

102

تعداد پرسش ها

0

افزودن به لیست علاقه مندی ها


برچسب ها :


اشتراک گذاری این مطلب
سامان محمدپور
در مورد نویسنده : موفقیت بستگی به تلاش هر شخص داره، هممون ب همون اندازه که تلاش کردیم موفق شدیم.

دامنه (Scope) متغیرها در پایتون (Python) محلی و سراسری یا عمومی

دامنه (Scope) متغیرها در پایتون (Python) محلی و سراسری یا عمومی

زمان مطالعه

5 دقیقه

تعداد بازدید

102

تعداد پرسش ها

0

افزودن به لیست علاقه مندی ها


برچسب ها :


اشتراک گذاری این مطلب

در همه زبان های برنامه نویسی بحث دسترسی به متغیرها وجود دارد، پایتون هم از این قضیه مستثنا نیست.

در برنامه نویسی دسترسی به متغیرها فقط از منطقه تعریف شده آن عملی است، در غیر این صورت دسترسی به آن متغیر ممکن نخواهد بود که به آن دامنه (Scope) یک متغیر گفته می شود.

دامنه ها در پایتون به دو بخش تقسیم می شوند:

  • دامنه محلی (Local Scope)
  • دامنه سراسری یا عمومی (Global Scope)

حال به سراغ تعریف آن ها خواهیم رفت و آن ها را با هم بررسی می کنیم.

متغیر محلی (Local Scope)

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

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

 

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

 

متغیر محلی (Local Scope) در پایتون (Python)

 

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

همانطور که در بالا گفته شد متغیر x فقط در داخل تابع قابل دسترس است و نه خارج از آن، اما اگر در داخل آن تابع تابع دیگری داشته باشیم دسترسی به x در داخل تابع داخلی امکان پذیر است.

مثال: در این مثال یک تابع را درون تابع دیگری تعریف کرده ایم و دسترسی به تمام متغیرهای تابع بیرونی در داخل تابع داخلی امکان پذیر است.

 

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

 

متغیر محلی (Local Scope) در پایتون (Python)

 

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

به متغیرهایی که در بدنه اصلی کد تعریف می شوند متغیرهای سراسری یا عمومی (Global Scope) گفته می شوند که متعلق به دامنه سراسری هستند.

این متعیرها در تمام قسمت های برنامه قابل دسترس هستند چه در دامنه محلی و چه در دامنه سراسری.

مثال: در این مثال یک متغیر در محدوده سراسری تعریف کرده ایم که در کل محدوده ها (محلی و سراسری) قابلیت دسترسی را دارند .

 

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

 

دامنه سراسری یا عمومی (Global Scope) در پایتون (Python)

 

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

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

مثال: در این مثال دو متغیر هم نام ایجاد کردیم که یکی در داخل تابع (دامنه محلی) است و دیگری در خارج از نابع (دامنه سراسری) که در آن print داخل تابع همان x محلی را چاپ می کند و print خارج تابع x سراسری را چاپ می کند.

 

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

 

نام گذاری یکسان متغیرهای سراسری و محلی در پایتون (Python)

 

کلمه کلیدی Global

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

کلمه کلیدی Global یک متغیر در داخل محدوده محلی را به یک متغیر سراسری تبدیل می کند.

مثال: در زیر با استفاده از کلمه کلیدی Global یک متغیر سراسری در درون یک تابع تعریف کرده ایم.

 

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

 

کلمه کلیدی Global در پایتون (Python)

 

همچنین برای تغییر در یک متغیر سراسری درون یک تابع هم می توانید از کلمه کلیدی Global استفاده کنید.

مثال: در این مثال ابتدا یک متغیر سراسری ایجاد کردیم و سپس در درون تابع با استفاده از کلمه کلیدی Global مقدار آن را تغییر داده ایم.

 

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

 

کلمه کلیدی Global در پایتون (Python)

 

خب در این مقاله نیز با مبحث دامنه (Scope) آشنا شدید و یاد گرفتید که چگونه متغیرهای سراسری و محلی ایجاد کنید.

در مقاله بعدی با هم به مبحث بسیار مهم و اساسی ماژول ها (Modules) در پایتون می پردازیم.

سامان محمدپور
در مورد نویسنده : موفقیت بستگی به تلاش هر شخص داره، هممون ب همون اندازه که تلاش کردیم موفق شدیم.

پرسش و پاسخ
0
دوره پیشنهادی
دوره پیشنهادی