آدرس : تهران میدان فردوسی خیابان ایرانشهر بین سمیه و طالقانی مجتمع تجاری میلاد واحد 9

پشتیبانی 24 ساعته : 02188867940 – 09927674217

برای مشاهده لیست علاقه مندی ها وارد شوید!

مشاهده محصولات فروشگاه
0

هیچ محصولی در سبد خرید نیست.

سرگرمی با *args و **kwargs

دسته بندی :اخبار سایت 21 فوریه 2023 علیرضا بابامرادی 401

من یک بار با یک پایتونیستای هوشمند برنامه‌ریزی کردم که فریاد می‌زد با پارامترهای اختیاری یا کلمه کلیدی. در غیر این صورت خیلی با هم کنار آمدیم. من حدس می‌زنم این همان کاری است که برنامه‌نویسی در دانشگاه با مردم در نهایت انجام می‌دهد. در حال حاضر، در حالی که به راحتی مورد تمسخر قرار می گیرند، پارامترهای *args و **kwargs به هر حال یک ویژگی بسیار مفید در پایتون نیستند. و درک آنها potency شما را به یک توسعه دهنده موثرتر تبدیل می کند. بنابراین پارامترهای *args و **kwargs برای چه استفاده می شوند؟ اجازه می دهند الف تابعی برای پذیرش آرگومان های اختیاری است، بنابراین می توانید API های انعطاف پذیر ایجاد کنید در ماژول ها و کلاس های شما:def foo(required, *args, **kwargs): “ارگ!” و “کوارگ!” هر بار که او یک تعریف تابع را تایپ کرد if args: print(required) print(args) print(kwargs)تابع فوق حداقل به یک آرگومان به نام “نیاز” نیاز دارد. if kwargs: اما می تواند آرگومان های موقعیتی و کلید واژه اضافی را نیز بپذیرد. اگر تابع را با آرگومان های اضافی فراخوانی کنیم، آرگ ها جمع می شوند آرگومان های موقعیتی اضافی به عنوان یک تاپل به دلیل نام پارامتر به همین ترتیب، kwargs آرگومان های کلیدواژه اضافی را به عنوان یک فرهنگ لغت جمع آوری می کند زیرا نام پارامتر دارای پیشوند ** است. دارای پیشوند * است. اگر هیچ آرگومان اضافی ارسال نشود، هر دو آرگ و کوارگ می توانند خالی باشند همانطور که ما تابع را با ترکیب های مختلفی از آرگومان ها فراخوانی می کنیم، شما این کار را خواهید کرد ببینید پایتون چگونه آنها را در پارامترهای args و kwargs جمع آوری می کندبا توجه به اینکه آیا آنها آرگومان های موقعیتی یا کلیدواژه هستند:>>> foo() به تابع. TypeError: >>> foo(‘hello’) “foo() missing 1 required positional arg: ‘required'” >>> foo(‘hello’, 1, 2, 3) hello (1, 2, 3) hello >>> foo(‘hello’, 1, 2, 3, key1=’value’, key2=999) (1, 2, 3) hello {‘key1’: ‘value’, ‘key2’: 999}من می خواهم روشن کنم که فراخوانی پارامترها args و kwargs است همچنین اگر آنها را *parms و **argv نامیدید. نحو واقعی است فقط ستاره (*) یا دو ستاره (**)، به ترتیب. به سادگی یک قرارداد نامگذاری مثال قبلی فقط کار می کند با این حال، توصیه می‌کنم برای جلوگیری از سردرگمی، به کنوانسیون نام‌گذاری پذیرفته شده پایبند باشید. (و برای اینکه فرصتی برای فریاد زدن “ارغ!” و “کوارگ!” هرچند وقت یکبار.)امکان انتقال پارامترهای اختیاری یا کلیدواژه از یک تابع به عملکرد دیگر وجود دارد. هنگام فراخوانی تابعی که می‌خواهید آرگومان‌ها را به آن فوروارد کنید، می‌توانید این کار را با استفاده از عملگرهای بازگشایی آرگومان * و ** انجام دهید.ارسال آرگومان های اختیاری یا کلیدواژه

علیرضا بابامرادی

راه آسان‌تری برای ارتباط با کاربران‌مان پیدا کرده‌ایم :) عضویت در کانال

مطالب زیر را حتما بخوانید:

قوانین ارسال دیدگاه در سایت

  • چنانچه دیدگاهی توهین آمیز باشد تایید نخواهد شد.
  • چنانچه دیدگاه شما جنبه ی تبلیغاتی داشته باشد تایید نخواهد شد.
  • چنانچه از لینک سایر وبسایت ها و یا وبسایت خود در دیدگاه استفاده کرده باشید تایید نخواهد شد.
  • چنانچه در دیدگاه خود از شماره تماس، ایمیل و آیدی تلگرام استفاده کرده باشید تایید نخواهد شد.
  • چنانچه دیدگاهی بی ارتباط با موضوع آموزش مطرح شود تایید نخواهد شد.

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

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

لینک کوتاه:
0