دامنه متغیرها تو تابعها (Scope) 🔍
امروز قراره درباره یه موضوع مهم حرف بزنیم: دامنه متغیرها یا Scope. این یعنی متغیرها تو کدت کجا کار میکنن و کجا نمیکنن. مثل اینه که بدونی کلید خونهت فقط در خونه خودتو باز میکنه! 🔑
🟢 تو پایتون، دو نوع دامنه اصلی داریم:
🔹 Local Scope:
🔹 متغیرهایی که داخل تابع تعریف میشن، فقط همونجا کار میکنن.
🔸 Global Scope:
🔸 متغیرهایی که بیرون تابع تعریف میشن، همهجا (خارج و داخل تابعها) قابلاستفادهان، مگه اینکه یه متغیر محلی همنام باشه.
✨ مثال:
x = 10 # Global variable
def my_function():
x = 5 # Local variable
print(f"Inside function: {x}") # Print local x
my_function()
print(f"Outside function: {x}") # Print global x
🔹 خروجی:
Inside function: 5
Outside function: 10
🔰 این کد چیکار میکنه؟
متغیر x جهانی (10) بیرون تابع تعریف شده.
متغیر x محلی (5) داخل تابع تعریف شده و فقط همونجا کار میکنه.
وقتی تابع چاپ میکنه، از x محلی استفاده میشه.
بیرون تابع، x جهانی چاپ میشه.
✅ نکته مهم: اگه داخل تابع بخوای به متغیر جهانی دسترسی پیدا کنی و تغییرش بدی، باید از کلمه global استفاده کنی:
x = 10 # Global variable
def change_global():
global x
x = 20 # Modify global x
print(f"Inside function: {x}") # Print modified x
change_global()
print(f"Outside function: {x}") # Print global x
🔹 خروجی:
Inside function: 20
Outside function: 20
✨ مثال روزمره: فرض کن داری یه بازی میسازی. یه متغیر جهانی داری که امتیاز کل بازیکن رو نگه میداره. تو تابعهای مختلف (مثل تابع پایان مرحله) میتونی امتیاز رو تغییر بدی، ولی متغیرهای محلی (مثل تعداد دشمنهای کشتهشده تو یه مرحله) فقط تو همون تابع کار میکنن.
❓ تمرین: یه تابع بنویسید که یه متغیر محلی و یه متغیر جهانی رو چاپ کنه. متغیر جهانی رو با global تغییر بدید.
💯 @PythonForYou 🧑💻👩💻