آشنایی با تفاوت args و kwargs در پایتون

August 2019

در پایتون از args و kwargs برای هندل کردن آرگومان های پیش بینی نشده استفاده میشود. این آرگومانها میتوانند به شکل ساده یا دیکشنری ارسال شوند

به مثال زیر دقت کنید

def show(name):
   print( f'Hello {name}' )


show('amir', 'ali')

در مثال بالا یه دونه فانکشن داریم به اسم show که انتظار داره یک مقدار رو بهش بفرستیم و اون یک مقدار رو بگیره و چاپ کنه. اما ما دوتا مقدار رو فرستادیم و این کد به ما ارور میده.

اینجا میتونید از *args استفاده کنید. args به شما اجازه میده که پارامترهای اضافی رو بگیرید.

def show(name, *args):
   print( f'Hello {name}' )


show('amir', 'ali')

اگه کد بالا رو اجرا کنید دیگه به شما ارور نمیده چون args اومده و پارامترهای اضافی رو داخل خودش نگهداشته.

حالا اگه من به فانکشن show به صورت key-value مقدار بدم چه اتفاقی میوفته؟

show('amir', 'ali', age=20)

کد بالا رو اگه اجرا کنید باز هم به شما ارور میده. اینجا دیگه args نمیتونه برای شما کاری انجام بده.

برای گرفتن مقدارهای اضافی که به شکل key-value میان میتونید از **kwargs استفاده کنید:

def show(name, *args, **kwargs):
   print( f'Hello {name}' )


show('amir', 'ali', age=20)

بازم اگه کد بالا رو اجرا کنید دیگه ارور نخواهید داشت چون kwargs اونها رو داخل خودش ذخیره کرده

ارسال نظر

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