Python

فراخوانی توابع در پایتون

📞 فراخوانی توابع در پایتون

⚙️ فراخوانی تابع چیست؟

فراخوانی تابع در پایتون یعنی اجرای دستورات داخل بدنه یک تابع. وقتی تابعی را صدا میزنید، برنامه اجرای خودش را به آن تابع منتقل میکند و دستوراتش را بهترتیب اجرا میکند. بعد از پایان تابع، برنامه به همان جایی برمیگردد که تابع فراخوانی شده بود.

🧩 سینتکس فراخوانی تابع

برای فراخوانی تابع، کافی است نام تابع را همراه با پرانتز بنویسید. اگر تابع پارامتر داشته باشد، باید مقادیر موردنظر را بهترتیب داخل پرانتز بگذارید.

python
def salam_bego(name):
    print(f"Salam {name}!")

salam_bego("Ali")  # خروجی: Salam Ali!

در این مثال:

  • salam_bego نام تابع است.

  • name پارامتر تابع است.

  • رشته "Ali" بهعنوان آرگومان به پارامتر name داده میشود.

🧭 انواع فراخوانی تابع

  1. فراخوانی با پارامترهای ضروری
    پارامترهایی که هنگام تعریف تابع مشخص شدهاند و باید حتماً مقدار بگیرند.

  2. فراخوانی با پارامترهای پیشفرض
    پارامترهایی که مقدار اولیه دارند و اگر مقداردهی نشوند، از همان مقدار پیشفرض استفاده میشود.

  3. فراخوانی با پارامترهای متغیر
    با استفاده از *args و **kwargs میتوانید تعداد نامحدودی آرگومان به تابع بفرستید.


🛠️ ۱. تعریف اولیه یک تابع

python
def function_name(parameters):
    """Optional docstring"""
    # Code block
    return result  # Optional

👋 ۲. فراخوانی ساده توابع

python
def say_hello():
    print("Hello, World!")

say_hello()  # خروجی: Hello, World!

📥 ۳. فراخوانی توابع با پارامترها

python
def greet(name):
    print(f"Hello, {name}!")

greet("Ali")  # خروجی: Hello, Ali!

📦 ۴. فراخوانی توابع با چندین پارامتر

python
def add(a, b):
    return a + b

result = add(5, 3)
print(result)  # خروجی: 8

🧾 ۵. فراخوانی با پارامترهای پیشفرض

python
def greet(name="Guest"):
    print(f"Hello, {name}!")

greet()        # خروجی: Hello, Guest!
greet("Sara")  # خروجی: Hello, Sara!

✨ ۶. فراخوانی با تعداد نامشخص پارامتر (*args)

python
def add_all(*args):
    return sum(args)

result = add_all(1, 2, 3, 4)
print(result)  # خروجی: 10

🗂️ ۷. فراخوانی با پارامترهای کلید-مقدار (**kwargs)

python
def print_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

print_info(name="Ali", age=30, city="Tehran")
# خروجی:
# name: Ali
# age: 30
# city: Tehran

🔁 ۸. فراخوانی بازگشتی (Recursion)

python
def factorial(n):
    if n == 1:
        return 1
    else:
        return n * factorial(n - 1)

result = factorial(5)
print(result)  # خروجی: 120

⚡ ۹. فراخوانی توابع لامبدا (Lambda)

python
add = lambda x, y: x + y
print(add(5, 3))  # خروجی: 8

🚀 ۱۰. نکات پیشرفته در فراخوانی توابع

ارسال لیست به تابع با *

python
def multiply(a, b, c):
    return a * b * c

numbers = [2, 3, 4]
print(multiply(*numbers))  # خروجی: 24

ارسال دیکشنری به تابع با **

python
def display_info(name, age, city):
    print(f"{name} is {age} years old and lives in {city}.")

person = {"name": "Sara", "age": 25, "city": "Tehran"}
display_info(**person)
# خروجی: Sara is 25 years old and lives in Tehran.

🔍 پارامتر و آرگومان چه تفاوتی دارند؟

📌 پارامتر (Parameter)

  • متغیری است که در تعریف تابع مشخص میشود.

  • به تابع اجازه میدهد دادهها را دریافت کند.

  • داخل پرانتز بعد از نام تابع تعریف میشود.

🎯 آرگومان (Argument)

  • مقدار واقعی است که هنگام فراخوانی به پارامتر داده میشود.

  • مشخص میکند تابع با چه دادهای کار کند.

  • داخل پرانتز هنگام فراخوانی تابع قرار میگیرد.

python
def salam_bego(name):  # name پارامتر است
    print(f"Salam {name}!")

salam_bego("Ali")  # "Ali" آرگومان است

🧬 انواع پارامترها در پایتون

۱. پارامترهای ضروری (Positional Arguments)

python
def jam(a, b):
    return a + b

natije = jam(3, 5)  # a=3, b=5

۲. پارامترهای پیشفرض (Default Arguments)

python
def salam_bego(name="Mehman"):
    print(f"Salam {name}!")

salam_bego()       # خروجی: Salam Mehman!
salam_bego("Ali")  # خروجی: Salam Ali!

۳. پارامترهای متغیر موقعیتی (*args)

python
def jam_hame(*adad):
    natije = 0
    for adad in adad:
        natije += adad
    return natije

print(jam_hame(1, 2, 3, 4))  # خروجی: 10

۴. پارامترهای متغیر کلیدی (**kwargs)

python
def chap_etelaat(**etelaat):
    for kelid, meghdar in etelaat.items():
        print(f"{kelid}: {meghdar}")

chap_etelaat(name="Ali", sen=30, shahr="Tehran")

۵. پارامترهای کیوردی (Keyword Arguments)

python
def taghsim(a, b):
    return a // b

natije = taghsim(b=3, a=17)

🧠 نکات مهم

  • پارامترهای ضروری باید قبل از پارامترهای پیشفرض بیایند.

  • *args باید قبل از **kwargs قرار بگیرد.

  • ترتیب پارامترهای کیوردی مهم نیست، اما ترتیب پارامترهای موقعیتی مهم است.

مثال ترکیبی از انواع پارامترها

python
def tabe_nemone(a, b=2, *args, **kwargs):
    print(a, b, args, kwargs)

tabe_nemone(1, 3, 4, c=3, d=4, x=5, y=6)

💡 کاربردهای فراخوانی توابع

  • تکرارپذیری کد: یک قطعه کد را بارها با ورودیهای مختلف اجرا کنید.

  • افزایش خوانایی: کد به بخشهای کوچکتر و قابلفهمتر تقسیم میشود.

  • مدیریت پیچیدگی: مسائل بزرگ را به زیرمسئلههای کوچکتر تقسیم کنید.

  • استفاده مجدد: از توابع در بخشهای مختلف برنامه استفاده کنید.


🧪 مثال عملی

python
def mohasebe_miangin(*adad):
    jam_adad = sum(adad)
    tedad_adad = len(adad)
    miangin = jam_adad / tedad_adad
    return miangin

natayej_emtehan = [75, 80, 92, 68]
miangin_nomre = mohasebe_miangin(*natayej_emtehan)
print(miangin_nomre)

📝 جمعبندی

فراخوانی توابع یکی از مفاهیم پایهای و مهم در پایتون است. با یادگیری درست آن میتوانید کدهایی تمیزتر، خواناتر و قابلنگهداریتر بنویسید.

نمایش بیشتر

هادی محمدیان

هادی محمدیان | متخصص پایگاه داده، تحلیل داده و فرآیندهای سازمانی با تجربه عملی در طراحی و بهینه‌سازی زیرساخت‌های داده. در hadimohammadian.ir مفاهیم کاربردی مدیریت پایگاه داده، تحلیل داده، SQL، Python و اصول مهندسی داده را همراه با نگاه فرآیندمحور به زبان فارسی آموزش می‌دهم. هدف من پیوند دادن دانش فنی داده با نیازهای واقعی کسب‌وکار و کمک به سازمان‌ها برای تصمیم‌گیری داده‌محور است.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا