Notice: file_put_contents(): Write of 1392 bytes failed with errno=28 No space left on device in /var/www/tgoop/post.php on line 50

Warning: file_put_contents(): Only 16384 of 17776 bytes written, possibly out of free disk space in /var/www/tgoop/post.php on line 50
🧑‍💻Cyber.vision🧑‍💻@pythonwithmedev P.361
PYTHONWITHMEDEV Telegram 361
اگه اینارو نمیدونی ادعایی تو برنامه نویسی نداشته باش!

شاید پارامترهای 'arg' و 'kwarg'  توی تعریف توابع یا داکیومنت های کتابخونه های مختلف  #پایتون دیده باشین.
اما این دوتا پارامتر دقیقا چیکار میکنن؟
زمان تعریف توابع میشه یک یا چند آرگیومنت رو به عنوان ورودی به اون تابع تعریف کرد اما اگر ندونیم که ورودی ها دقیقا چند تا هستند یا در آینده بخواییم چیزهای دیگه رو هم به عنوان ورودی به تابع بدیم به مشکل برمیخوریم و اینجاست که این دو تا پارامتر وارد عمل میشن.

پارامتر *arg: اگر تابعی از این پارامتر استفاده کنه به ترتیب وردی هایی که بهش داده شده رو میگیره و داخل پارامترهاش میریزه اما هر ورودی بیش تر از تعداد ورودی های ثابت رو به *arg اختصاص میده
def testfunc(one,*argv):
    for arg in argv:
        print(arg)

testfunc('Hello', 'this', 'is', 'SiliconBrain')

توی مثال بالا تابع مقدار ورودی 'one' رو با "hello" پر میکنه و باقی ورودی ها رو داخل *arg میریزه.
پارامتر *arg از مجوعه پارامترهای position based هست یعنی ترتیب ورودی هایی که بهش داده میشه اهمیت داره و به تبع اون میشه به همون ترتیب داخل تابع بهشون دسترسی داشت.

پارامتر **kwarg:
این پارامتر هم مثل پارامتر قبلی برای ورودی دادن اضافی به توابع استفاده میشه با این تفاوت که ساختار اون به صورت دیکشنری هست و ورودی هایی که از این طریق به تابع داده میشن رو باید به صورت مقادیر {key:value} تعریف کرد.
def testfunc(arg1, **kwargs):
    for key, value in kwargs.items():
        print(f"{key} == {value}")

testfunc("Hi", first='this', mid='is', last='SiliconBrain')


در مثال بالا مقدار arg1 با "Hi" پر میشه و بقیه ورودی ها با **kwarg اختصاص پیدا میکنند در نتیجه داخل تابع به جای دسترسی به ورودی ها با استفاده از slicing که در *arg استفاده میشه.

نکته مهم: نام گذاری برای این دو پارامتر آزاد هست و هر اسمی که بعد از  * یا ** بیاد همون کاربرد موارد گفته شده بالا رو داره.
#python



tgoop.com/pythonwithmedev/361
Create:
Last Update:

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

شاید پارامترهای 'arg' و 'kwarg'  توی تعریف توابع یا داکیومنت های کتابخونه های مختلف  #پایتون دیده باشین.
اما این دوتا پارامتر دقیقا چیکار میکنن؟
زمان تعریف توابع میشه یک یا چند آرگیومنت رو به عنوان ورودی به اون تابع تعریف کرد اما اگر ندونیم که ورودی ها دقیقا چند تا هستند یا در آینده بخواییم چیزهای دیگه رو هم به عنوان ورودی به تابع بدیم به مشکل برمیخوریم و اینجاست که این دو تا پارامتر وارد عمل میشن.

پارامتر *arg: اگر تابعی از این پارامتر استفاده کنه به ترتیب وردی هایی که بهش داده شده رو میگیره و داخل پارامترهاش میریزه اما هر ورودی بیش تر از تعداد ورودی های ثابت رو به *arg اختصاص میده

def testfunc(one,*argv):
    for arg in argv:
        print(arg)

testfunc('Hello', 'this', 'is', 'SiliconBrain')

توی مثال بالا تابع مقدار ورودی 'one' رو با "hello" پر میکنه و باقی ورودی ها رو داخل *arg میریزه.
پارامتر *arg از مجوعه پارامترهای position based هست یعنی ترتیب ورودی هایی که بهش داده میشه اهمیت داره و به تبع اون میشه به همون ترتیب داخل تابع بهشون دسترسی داشت.

پارامتر **kwarg:
این پارامتر هم مثل پارامتر قبلی برای ورودی دادن اضافی به توابع استفاده میشه با این تفاوت که ساختار اون به صورت دیکشنری هست و ورودی هایی که از این طریق به تابع داده میشن رو باید به صورت مقادیر {key:value} تعریف کرد.
def testfunc(arg1, **kwargs):
    for key, value in kwargs.items():
        print(f"{key} == {value}")

testfunc("Hi", first='this', mid='is', last='SiliconBrain')


در مثال بالا مقدار arg1 با "Hi" پر میشه و بقیه ورودی ها با **kwarg اختصاص پیدا میکنند در نتیجه داخل تابع به جای دسترسی به ورودی ها با استفاده از slicing که در *arg استفاده میشه.

نکته مهم: نام گذاری برای این دو پارامتر آزاد هست و هر اسمی که بعد از  * یا ** بیاد همون کاربرد موارد گفته شده بالا رو داره.
#python

BY 🧑‍💻Cyber.vision🧑‍💻


Share with your friend now:
tgoop.com/pythonwithmedev/361

View MORE
Open in Telegram


Telegram News

Date: |

The best encrypted messaging apps Find your optimal posting schedule and stick to it. The peak posting times include 8 am, 6 pm, and 8 pm on social media. Try to publish serious stuff in the morning and leave less demanding content later in the day. 1What is Telegram Channels? Just as the Bitcoin turmoil continues, crypto traders have taken to Telegram to voice their feelings. Crypto investors can reduce their anxiety about losses by joining the “Bear Market Screaming Therapy Group” on Telegram. To upload a logo, click the Menu icon and select “Manage Channel.” In a new window, hit the Camera icon.
from us


Telegram 🧑‍💻Cyber.vision🧑‍💻
FROM American