Python – محدوده دسترسی (Scope)
در پایتون، Scope (محدوده دسترسی) تعیین میکند که متغیرها در کدام قسمت از برنامه قابل دسترسی و استفاده هستند. این موضوع به دو نوع اصلی محدوده محلی (Local) و محدوده سراسری (Global) تقسیم میشود.
1. محدوده محلی (Local Scope)
وقتی متغیری در داخل یک تابع تعریف شود، فقط در داخل همان تابع قابل دسترسی است و خارج از آن استفاده نمیشود.
مثال:
def myfunc():
x = 300
print(x)
myfunc()
در این مثال، متغیر x
فقط در داخل تابع myfunc
قابل استفاده است.
2. تابع داخل تابع (Function Inside Function)
متغیر محلی (مثل x
) میتواند توسط توابع داخلی (nested) در همان تابع اصلی استفاده شود.
مثال:
def myfunc():
x = 300
def myinnerfunc():
print(x)
myinnerfunc()
myfunc()
اینجا، تابع myinnerfunc
میتواند به متغیر x
که در تابع بیرونی تعریف شده دسترسی داشته باشد.
3. محدوده سراسری (Global Scope)
اگر متغیری خارج از هر تابعی تعریف شود، آن متغیر در محدوده سراسری قرار دارد و در تمام کد، از جمله در داخل توابع، قابل دسترسی است.
مثال:
x = 300
def myfunc():
print(x)
myfunc()
print(x)
در اینجا، متغیر x
در کل برنامه، چه در داخل تابع و چه در خارج از آن، قابل استفاده است.
4. نامگذاری متغیرها (Naming Variables)
x = 300
def myfunc():
x = 200
print(x)
myfunc()
print(x)
در این مثال، x
داخل تابع مقدار ۲۰۰ دارد، اما x
در خارج از تابع مقدار ۳۰۰ را نگه میدارد.
5. کلمه کلیدی global
اگر بخواهید در داخل یک تابع یک متغیر سراسری ایجاد یا تغییر دهید، میتوانید از کلمه کلیدی global
استفاده کنید.
مثال:
def myfunc():
global x
x = 300
myfunc()
print(x)
6. کلمه کلیدی nonlocal
از کلمه کلیدی nonlocal
برای دسترسی به متغیرهای تعریف شده در توابع خارجی (بیرونی) استفاده میشود.
مثال:
def myfunc1():
x = "Jane"
def myfunc2():
nonlocal x
x = "hello"
myfunc2()
return x
print(myfunc1())
در این مثال، متغیر x
از تابع myfunc1
در داخل تابع myfunc2
با استفاده از nonlocal
تغییر میکند.
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام