راهنمای سریع *args و **kwargs در پایتون

*args در پایتون

تصور کنید که شما قصد ساخت یک تابع را دارید که در آن ورودی‌ها خود را با همدیگر جمع می‌کند. ساده‌ترین راه برای تعریف چنین تابعی به صورت زیر خواهد بود:

def mul(x, y):
return x * y

print(mul(10, 5))

اما در این حالت اگر من بیشتر از دو ورودی را وارد کنم چه اتفاقی خواهد افتاد؟ برنامه به من خطا داده و در نهایت کار نمی‌کند. بنابراین من نیاز دارم تابع را به صورتی ایجاد کنم که تعداد مقدارهای ورودی آن به صورت متغیر باشد. بدین معنا که هم بتواند دو ورودی را ضرب بکند، هم بتواند پنج ورودی را و… .

برای انجام چنین کاری می‌توان از آرگومان *args استفاده کرد:

def mul(*args):
return args

print(mul(10,20,30,40))

اگر خروجی قطعه کد بالا را مشاهده کنید یک tuple را خواهید دید. حال برای آنکه عملگر ضرب را روی این موارد اعمال کنیم می‌توانیم از یک حلقه for استفاده کنیم:

def mul(*args):
res = 1
for num in args:
res = res*num
return res

print(mul(10,20))
print(mul(10,20,30))
print(mul(10,20,30,40))

**kwargs در پایتون

تفاوت میان kwargs با args در این است که خروجی را بجای آنکه به صورت tuple برگشت دهد به صورت یک ساختمان داده دیکشنری برگشت می‌دهد. بنابراین شما برای وارد کردن اطلاعات‌تان نیز باید از قاعده key-value پیروی کنید. در غیر اینصورت خطا دریافت خواهید کرد. برای مثال به قطعه کد زیر دقت کنید:

def info(**kwargs):
return kwargs

print(info(‘Arastoo’, ‘Web Development))

خروجی قطعه کد بالا یک typeerorr خواهد بود. برای پر کردن تابع info شما نیاز دارید که به سبک زیر پیش بروید:

def info(**kwargs):
return kwargs

print(info(name = ‘Arastoo’, career= ‘Web Development))

حال می‌توانید به صورت زیر دیکشنری ساخته شده را پیمایش کنید:

def info(**kwargs):
for key, value in kwargs.items():
print(f’{key}: {value}’)

info(name = ‘Arastoo’, career= ‘Web Developer’)

منتشرشده توسط

Arastoo Abasi

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

یک دیدگاه در “راهنمای سریع *args و **kwargs در پایتون”

  1. بسیار عالی
    این هم ویدئو می شد خوب بود
    بیشتر ویدئو دیده میشه تا متن
    من از طریق سرچ اپارات تو تونستم ویدئو شما پیدا کنم اموزش نکات ترفند بصورت ویدئو باشه خیلی خوبه توضیحات و فن بیان خوبی دارید ! بیشتر ویدئو بسازید
    مرسی از به اشتراک گذاری اطلاعاتون در پایتون

پاسخی بگذارید

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