تابعهای تو در تو (Nested Functions) 🔄
یه ویژگی باحال تو پایتون اینه که میتونی تابعها رو تو دل همدیگه بذاری! مثل عروسکهای ماتریوشکا که یه عروسک تو عروسک دیگهست. 🪆 به این میگن تابعهای تو در تو.
✨ مثال:
def outer_function():
def inner_function():
print("I'm inside the outer function!") # Print from inner function
inner_function() # Call inner function
outer_function()
🔹 خروجی:
I'm inside the outer function!
🔰 این کد چیکار میکنه؟
تابع outer_function یه تابع داخلی به اسم inner_function داره.
تابع داخلی فقط داخل تابع خارجی کار میکنه و نمیتونی مستقیم صداش کنی.
وقتی outer_function رو صدا میکنی، اون تابع داخلی رو اجرا میکنه.
✅ چرا از تابع تو در تو استفاده کنیم؟
- سازماندهی بهتر: میتونی کدهای مرتبط رو توی یه تابع بزرگتر گروهبندی کنی.
- محافظت از کد: تابع داخلی فقط تو تابع خارجی قابلاستفادهست، پس از بیرون نمیتونن بهش دسترسی پیدا کنن.
- کارهای پیچیده: برای کارهایی که نیاز به چند مرحله دارن، تابعهای داخلی میتونن کمک کنن.
✨ یه مثال واقعی: فرض کن داری یه برنامه برای محاسبه مالیات میسازی. یه تابع خارجی داری که مالیات کل رو حساب میکنه، و یه تابع داخلی که یه بخش خاص (مثلاً مالیات پایه) رو محاسبه میکنه:
def calculate_tax(income):
def base_tax():
return income * 0.1 # Calculate 10% base tax
total_tax = base_tax() + 100 # Add fixed amount
return total_tax # Return final tax
print(calculate_tax(1000)) # Calculate tax for 1000
🔹 خروجی:
200.0
📌نکته: تابع داخلی میتونه به متغیرهای تابع خارجی دسترسی داشته باشه (مثل income تو مثال بالا).
❓ تمرین: یه تابع خارجی بنویسید که یه عدد بگیره و یه تابع داخلی داشته باشه که مربع اون عدد رو چاپ کنه. تابع خارجی باید مکعب عدد رو برگردونه. تابع رو با دو عدد مختلف تست کنید.
💯 @PythonForYou 🧑💻👩💻