Python

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

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

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

پایتون از انواع مختلفی از آرگومان‌ها پشتیبانی می‌کند که هر کدام ویژگی‌های خاص خود را دارند:

۱. آرگومان‌های ضروری (Positional Arguments):

  • تعریف: این آرگومان‌ها باید به ترتیب دقیق هنگام فراخوانی تابع مشخص شوند.
  • مثال:
    Python
    def جمع(a, b):
        return a + b
    
    نتیجه = جمع(۳, ۵)  # a=3, b=5
    
def greet(name, age):
    print(f"Hello, my name is {name} and I am {age} years old.")

greet("Ali", 25)
# خروجی: Hello, my name is Ali and I am 25 years old.

۲. آرگومان‌های پیش‌فرض (Default Arguments):

  • تعریف: برای این آرگومان‌ها، یک مقدار پیش‌فرض مشخص می‌شود. اگر هنگام فراخوانی تابع، مقداری برای این آرگومان‌ها داده نشود، از مقدار پیش‌فرض استفاده می‌شود.
  • مثال:
    Python
    def سلام_بگو(نام="مهمان"):
        print(f"سلام {نام}!")
    
    سلام_بگو()  # خروجی: سلام مهمان!
    سلام_بگو("علی")  # خروجی: سلام علی!
    
def greet(name="Guest", age=0):
    print(f"Hello, my name is {name} and I am {age} years old.")

greet()              # خروجی: Hello, my name is Guest and I am 0 years old.
greet("Sara")        # خروجی: Hello, my name is Sara and I am 0 years old.
greet("Sara", 22)    # خروجی: Hello, my name is Sara and I am 22 years old.

۳. *آرگومان‌های متغیر موقعیتی (args):

  • تعریف: با استفاده از *args می‌توان تعداد نامحدودی آرگومان موقعیتی را به تابع ارسال کرد. این آرگومان‌ها به صورت یک تاپل در داخل تابع قابل دسترسی هستند.
  • مثال:
    Python
    def جمع_همه(*اعداد):
        نتیجه = ۰
        for عدد in اعداد:
            نتیجه += عدد
        return نتیجه
    
    نتیجه = جمع_همه(۱, ۲, ۳, ۴)  # خروجی: ۱۰
    
def add(*args):
    return sum(args)

result = add(1, 2, 3, 4)
print(result)  # خروجی: ۱۰

۴. **آرگومان‌های متغیر کلیدی (kwargs):

  • تعریف: با استفاده از **kwargs می‌توان تعداد نامحدودی آرگومان کلیدی را به تابع ارسال کرد. این آرگومان‌ها به صورت یک دیکشنری در داخل تابع قابل دسترسی هستند.
  • مثال:
    Python
    def چاپ_اطلاعات(**اطلاعات):
        for کلید, مقدار in اطلاعات.items():
            print(f"{کلید}: {مقدار}")
    
    چاپ_اطلاعات(نام="علی", سن=۳۰, شهر="تهران")
    
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

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

می‌توانید از چند نوع آرگومان به صورت ترکیبی در یک تابع استفاده کنید. با این حال، باید ترتیب استفاده از آن‌ها را رعایت کنید: ابتدا آرگومان‌های موقعیتی، سپس *args، پس از آن آرگومان‌های کلید-مقدار و در نهایت **kwargs.

مثال:

def my_function(a, b, *args, c=10, **kwargs):
    print(f"a: {a}, b: {b}, c: {c}")
    print(f"args: {args}")
    print(f"kwargs: {kwargs}")

my_function(1, 2, 3, 4, 5, d=6, e=7)
# خروجی:
# a: 1, b: 2, c: 10
# args: (3, 4, 5)
# kwargs: {'d': 6, 'e': 7}

نکات مهم:

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

مثال ترکیبی:

Python
def تابع_نمونه(a, b=۲, *args, **kwargs):
    print(a, b, args, kwargs)

تابع_نمونه(۱, c=۳, d=۴, x=۵, y=۶)

در این مثال:

  • a یک آرگومان ضروری است.
  • b یک آرگومان پیش‌فرض با مقدار ۲ است.
  • *args یک آرگومان متغیر موقعیتی است که مقادیر (۳, ۴) را دریافت می‌کند.
  • **kwargs یک آرگومان متغیر کلیدی است که دیکشنری {'c': 3, 'd': 4, 'x': 5, 'y': 6} را دریافت می‌کند.

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

 

۵/۵ ( ۱ امتیاز )
نمایش بیشتر

یک دیدگاه

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

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

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