دامنه (به انگلیسی: Scope)

از ویکی‌کد، دانشنامهٔ برنامه‌نویسی
پرش به ناوبری پرش به جستجو
Main Page Tutorial
Python-menu.png
موارد آموزشی
۱خانه
۲مقدمه
۳شروع کار
۴دستور زبان
۵توضیحات
۶متغیرها
۷انواع داده‌ها
۸اعداد
۹تبدیل نوع
۱۰رشته‌ها
۱۱Booleans
۱۲عملگرها
۱۳لیست‌ها
۱۴تاپل‌ها
۱۵مجموعه‌ها
۱۶دیکشنری‌ها
۱۷If...Else
۱۸حلقهٔ While
۱۹حلقهٔ For
۲۰توابع
۲۱Lambda
۲۲آرایه‌ها
۲۳کلاس‌ها / اشیاء
۲۴ارث‌بری
۲۵Iteratorها
۲۶دامنه
۲۷ماژول‌ها
۲۸تاریخ و زمان
۲۹JSON
۳۰RegEx
۳۱PIP
۳۲Try...Except
۳۳ورودی کاربر
۳۴قالب‌بندی رشته
مدیریت فایل
یادگیری ماشین
MySQL در پایتون
MongoDB در پایتون
مرجع پایتون
مرجع ماژول
چگونه در پایتون؟
مثال‌های پایتون


یک متغیر فقط داخل محدوده ای که تعریف شده‌است موجود است. این محدوده دامنه (به انگلیسی: Scope) نامیده می‌شود.[۱]

دامنه محلی

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

مثال

متغیر ابجاد شده در داخل تابع، در داخل تابع موجود است:

1 def myfunc():
2   x = 300
3   print(x)
4 
5 myfunc()


مشاهدهٔ نتیجه


تابع در داخل تابع

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

مثال

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

1 def myfunc():
2   x = 300
3   def myinnerfunc():
4     print(x)
5   myinnerfunc()
6 
7 myfunc()


مشاهدهٔ نتیجه


دامنه سراسری (به انگلیسی: Global)

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

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

مثال

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

1 x = 300
2 
3 def myfunc():
4   print(x)
5 
6 myfunc()
7 
8 print(x)


مشاهدهٔ نتیجه


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

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

مثال

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

1 x = 300
2 
3 def myfunc():
4   x = 200
5   print(x)
6 
7 myfunc()
8 
9 print(x)


مشاهدهٔ نتیجه


کلمه کلیدی Global

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

کلمه کلیدی global متغیر را سراسری می‌کند.

مثال

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

1 def myfunc():
2   global x
3   x = 300
4 
5 myfunc()
6 
7 print(x)


مشاهدهٔ نتیجه


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

مثال

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

1 x = 300
2 
3 def myfunc():
4   global x
5   x = 200
6 
7 myfunc()
8 
9 print(x)


مشاهدهٔ نتیجه



منابع آموزشی