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)

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

6. کلمه کلیدی nonlocal

از کلمه کلیدی nonlocal برای دسترسی به متغیرهای تعریف شده در توابع خارجی (بیرونی) استفاده می‌شود.

مثال:

def myfunc1():
    x = "Jane"
    def myfunc2():
        nonlocal x
        x = "hello"
    myfunc2()
    return x

print(myfunc1())

در این مثال، متغیر x از تابع myfunc1 در داخل تابع myfunc2 با استفاده از nonlocal تغییر می‌کند.

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
Python - محدود کردن داده (MongoDB Limit)

Python – محدود کردن داده (MongoDB Limit)

Python MongoDB محدود کردن نتایج برای محدود کردن نتایج در MongoDB، از متد limit() استفاده می‌کنیم. متد limit() یک...

بیشتر بخوانید
Python - بروزرسانی (MongoDB Update)

Python – بروزرسانی (MongoDB Update)

به‌روزرسانی یک رکورد برای به‌روزرسانی یک رکورد یا سند در MongoDB، از متد update_one() استفاده می‌کنیم. پارامتر اول متد...

بیشتر بخوانید
Python - حذف کالکشن (MongoDB Drop Collection)

Python – حذف کالکشن (MongoDB Drop Collection)

حذف کالکشن شما می‌توانید یک جدول یا کالکشن در MongoDB را با استفاده از متد drop() حذف کنید. مثالحذف...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.