Python – توابع (Functions)

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

توابع در پایتون بلوکی از کدها هستند که فقط زمانی اجرا می‌شوند که فراخوانی شوند. داده‌ها می‌توانند به عنوان پارامتر به توابع ارسال شوند و همچنین تابع می‌تواند مقداری را به عنوان نتیجه برگرداند.

ایجاد یک تابع

برای تعریف تابع از کلمه کلیدی def استفاده می‌شود.

مثال:

def my_function():
  print("Hello from a function")

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

برای فراخوانی تابع از نام تابع به همراه پرانتز استفاده کنید.

مثال:

def my_function():
  print("Hello from a function")

my_function()

آرگومان‌ها

اطلاعات می‌توانند به عنوان آرگومان به توابع ارسال شوند. آرگومان‌ها بعد از نام تابع و داخل پرانتز قرار می‌گیرند.

مثال:

def my_function(fname):
  print(fname + " Refsnes")

my_function("Emil")
my_function("Tobias")
my_function("Linus")

تفاوت پارامتر و آرگومان

از دیدگاه تابع:

  • پارامتر: متغیری است که در تعریف تابع داخل پرانتز ذکر می‌شود.
  • آرگومان: مقداری است که هنگام فراخوانی تابع ارسال می‌شود.

تعداد آرگومان‌ها

تعداد آرگومان‌های ارسالی باید با تعداد پارامترهای تابع مطابقت داشته باشد.

مثال:

def my_function(fname, lname):
  print(fname + " " + lname)

my_function("Emil", "Refsnes")

آرگومان‌های دلخواه (*args)

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

مثال:

def my_function(*kids):
  print("The youngest child is " + kids[2])

my_function("Emil", "Tobias", "Linus")

آرگومان‌های کلیدی

می‌توانید مقدار پیش‌فرض برای یک پارامتر تعیین کنید.

مثال:

def my_function(child3, child2, child1):
  print("The youngest child is " + child3)

my_function(child1="Emil", child2="Tobias", child3="Linus")

آرگومان‌های کلیدی دلخواه (**kwargs)

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

مثال:

def my_function(**kid):
  print("His last name is " + kid["lname"])

my_function(fname="Tobias", lname="Refsnes")

مقدار پیش‌فرض پارامتر

می‌توانید مقدار پیش‌فرض برای یک پارامتر تعیین کنید.

مثال:

def my_function(country="Norway"):
  print("I am from " + country)

my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")

ارسال لیست به عنوان آرگومان

هر نوع داده‌ای (مثل لیست، دیکشنری و …) را می‌توان به عنوان آرگومان به تابع ارسال کرد.

مثال:

def my_function(food):
  for x in food:
    print(x)

fruits = ["apple", "banana", "cherry"]
my_function(fruits)

بازگشت مقادیر از تابع

برای بازگرداندن مقداری از یک تابع، از دستور return استفاده کنید.

مثال:

def my_function(x):
  return 5 * x

print(my_function(3))
print(my_function(5))
print(my_function(9))

آرگومان‌های فقط-موقعیتی (Positional-Only Arguments)

می‌توانید مشخص کنید که تابع فقط آرگومان‌های موقعیتی را بپذیرد.

مثال:

def my_function(x, /):
  print(x)

my_function(3)

آرگومان‌های فقط-کلیدی (Keyword-Only Arguments)

می‌توانید مشخص کنید که تابع فقط آرگومان‌های کلیدی را بپذیرد.

مثال:

def my_function(*, x):
  print(x)

my_function(x=3)

ترکیب آرگومان‌های فقط-موقعیتی و فقط-کلیدی

می‌توانید هر دو نوع آرگومان را در یک تابع ترکیب کنید.

مثال:

def my_function(a, b, /, *, c, d):
  print(a + b + c + d)

my_function(5, 6, c=7, d=8)

بازگشت به توابع (Recursion)

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

مثال:

def tri_recursion(k):
  if k > 0:
    result = k + tri_recursion(k - 1)
    print(result)
  else:
    result = 0
  return result

print("Recursion Example Results")
tri_recursion(6)

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
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() حذف کنید. مثالحذف...

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

نظرات

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

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