نمایش نتایج 1 تا 13 از 13

نام تاپیک: ارگومان های کلیدی

  1. #1

    ارگومان های کلیدی

    با سلام،میشه لطفا در مورد ارگومان های کلیدی توضیح دهید؟چی هستند و چرا ما در برنامه نویسی از ان ها استفاده می کنیم؟ایا در زیان های برنامه نویسی دیگر به غیر از پایتون هم وجود دارند؟



    با تشکر و احترام.

  2. #2
    کاربر دائمی آواتار Bahmany
    تاریخ عضویت
    آبان 1384
    محل زندگی
    No Where
    سن
    40
    پست
    602

    نقل قول: ارگومان های کلیدی

    با سلام
    امیدوارم منظورتون Keyword Arguments باشه

    توابع می تونن در پایتون ( و یا بیشتر زبون ها ) متغییرهاشون رو بصورت StudentClass = "a" یا keyword = value تعریف کنن
    مثلا :

    def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue'):
    print "-- This parrot wouldn't", action,
    print "if you put", voltage, "Volts through it."
    print "-- Lovely plumage, the", type
    print "-- It's", state, "!"




    تابع بالا به صورت های مختلف زیر قابل فراخونی هست :


    parrot(1000)
    parrot(action = 'VOOOOOM', voltage = 1000000)
    parrot('a thousand', state = 'pushing up the daisies')
    parrot('a million', 'bereft of life', 'jump')


    و فراخونی های زیر غیر قابل پذیرش هستند :

    parrot() # required argument missing
    parrot(voltage=5.0, 'dead') # non-keyword argument following keyword
    parrot(110, voltage=220) # duplicate value for argument
    parrot(actor='John Cleese') # unknown keyword

  3. #3

    نقل قول: ارگومان های کلیدی

    نقل قول نوشته شده توسط Bahmany مشاهده تاپیک
    با سلام
    امیدوارم منظورتون Keyword Arguments باشه

    توابع می تونن در پایتون ( و یا بیشتر زبون ها ) متغییرهاشون رو بصورت StudentClass = "a" یا keyword = value تعریف کنن
    مثلا :

    def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue'):
    print "-- This parrot wouldn't", action,
    print "if you put", voltage, "Volts through it."
    print "-- Lovely plumage, the", type
    print "-- It's", state, "!"




    تابع بالا به صورت های مختلف زیر قابل فراخونی هست :


    parrot(1000)
    parrot(action = 'VOOOOOM', voltage = 1000000)
    parrot('a thousand', state = 'pushing up the daisies')
    parrot('a million', 'bereft of life', 'jump')


    و فراخونی های زیر غیر قابل پذیرش هستند :

    parrot() # required argument missing
    parrot(voltage=5.0, 'dead') # non-keyword argument following keyword
    parrot(110, voltage=220) # duplicate value for argument
    parrot(actor='John Cleese') # unknown keyword
    از اینکه وقتتون رو در اختیار گذاشتید و اینقدر با حوصله جواب دادید،تشکر می کنم.بله منظورم همان Keyword Arguments بود،اما سوالی که خیلی ذهنم را درگیر کرده،اینه که چرا ما از این ارگومان های کلیدی در برنامه نویسی استفاده می کنیم؟در ضمن،فرق بین Positional Arguments و Keyword Arguments چیست؟.

    با تشکر و احترام.

  4. #4

    نقل قول: ارگومان های کلیدی

    کسی نبود؟.........

  5. #5
    کاربر دائمی آواتار Bahmany
    تاریخ عضویت
    آبان 1384
    محل زندگی
    No Where
    سن
    40
    پست
    602

    نقل قول: ارگومان های کلیدی

    positional argument نوعی از آرگیومنت است که بدون مقدار پیش فرض و = تعریف شده است
    keyword argument نوعی از آرگیومنت بود که با مقدار پیش فرض تعریف میشد


    def rectangleArea(width, height):
    return width * height

    print rectangleArea(1, 2)
    print rectangleArea(width=1, height=2)
    print rectangleArea(height=2, width=1)



    Positional Argument می تونه با نام مقدار گذاری بشه ، یعنی هر وقت هرجایی تو تابع که دلت خواست می تونی ازش استفاده کنی به این شرط که اسمش کنارش باشه ، مثل مثال بالا

  6. #6
    کاربر دائمی آواتار Bahmany
    تاریخ عضویت
    آبان 1384
    محل زندگی
    No Where
    سن
    40
    پست
    602

    نقل قول: ارگومان های کلیدی

    حالا این مثال رو توجه بفرما

    def func(*args, **kwargs): ----> args: positional kwargs:keyword
    res = calc(1, 3, spam="eggs") ----> 1, 3: positional spam="eggs": keyword

    به کامنت های روبروش توجه بفرمایید

    حالا یه مثال دیگه :



    def foo(*positional, **keywords):
    print "Positional:", positional
    print "Keywords:", keywords


    >>> foo('one', 'two', 'three')
    Positional: ('one', 'two', 'three')
    Keywords: {}

    >>> foo(a='one', b='two', c='three')
    Positional: ()
    Keywords: {'a': 'one', 'c': 'three', 'b': 'two'}

    >>> foo('one','two',c='three',d='four')
    Positional: ('one', 'two')
    Keywords: {'c': 'three', 'd': 'four'}




  7. #7

    نقل قول: ارگومان های کلیدی

    [QUOTE=Bahmany;2058604]positional argument
    keyword argument نوعی از آرگیومنت بود که با مقدار پیش فرض تعریف میشد.

    ببخشید اگر اینطور هست،پس Keyword Argument چه فرقی با Default Argument Values داره؟Default Argument Values ها با مقدار پیش فرض در زمان تعریف تابع،معین می شوند.با تشکر از صبر و حوصله شما.

  8. #8
    کاربر دائمی آواتار Bahmany
    تاریخ عضویت
    آبان 1384
    محل زندگی
    No Where
    سن
    40
    پست
    602

    نقل قول: ارگومان های کلیدی

    [QUOTE=CyberGhost;2059574]
    نقل قول نوشته شده توسط Bahmany مشاهده تاپیک
    positional argument
    keyword argument نوعی از آرگیومنت بود که با مقدار پیش فرض تعریف میشد.

    ببخشید اگر اینطور هست،پس Keyword Argument چه فرقی با Default Argument Values داره؟Default Argument Values ها با مقدار پیش فرض در زمان تعریف تابع،معین می شوند.با تشکر از صبر و حوصله شما.
    با سلام
    سوال شما نوعی حرکت بین واژه هاست
    Default Argument Value یعنی مقدار پیش فرش یک آرگیومنت که ارتباطی با Keyword Argument نداره
    پست شماره 6 یه سری مثال خوب داره که دقیقا نقش آرگیومنت ها را مشخص میکنه

  9. #9

    نقل قول: ارگومان های کلیدی

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

  10. #10
    کاربر دائمی آواتار Bahmany
    تاریخ عضویت
    آبان 1384
    محل زندگی
    No Where
    سن
    40
    پست
    602

    نقل قول: ارگومان های کلیدی

    نقل قول نوشته شده توسط CyberGhost مشاهده تاپیک
    من معذرت میخوام اما خودم هم گیج شده بودم.پس در واقع ارگومان کلیدی شیوه ای برای فراخوان کردن تابع هست،درست نمی گم؟
    در واقع وقتی نمی دونیم چقدر متغییر امکان داره همراه تابع تعریف کنیم یا تعداد اونها خیلی زیاد هست از این آرگومان های کلیدی استفاده میکنیم
    در واقع یه جور امکان هست که بشما اجازه میده بی نهایت متغیر داشته باشی
    (( یه همچین چیزایی )) :))))

  11. #11

    نقل قول: ارگومان های کلیدی

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

  12. #12
    کاربر دائمی آواتار Bahmany
    تاریخ عضویت
    آبان 1384
    محل زندگی
    No Where
    سن
    40
    پست
    602

    نقل قول: ارگومان های کلیدی

    نقل قول نوشته شده توسط CyberGhost مشاهده تاپیک
    خیلی ممنونم.فقط یک سوال دیگه که اخرین هم هست و زیاد وقتتون رو نمی گیرم و سرتون رو هم درد نمیارم.البته از اونجا که در مراجع فارسی در مورد این جور چیز ها زیاد توضیح داده نشده از جهتی فکر می کنم جواب این سوال ها برای کسانی که مثل من به دنبال پاسخ هستند،بسیار سودمند باشه.VarArgs ها چی هستند و به چه درد می خورند؟اگر هم باید تاپیک دیگری برای این سوال ایجاد کنم،لطفا بگویید.با تشکر از راهنمایی و صبر و حوصله شما.با احترام.
    خواهشم میکنم ، بحث جالبیه
    در جاوا کد دستور زیر رو توجه بفرمایید :

    String.format("This is an integer: %d", myInt);
    String.format("This is an integer: %d and a string: %s", myInt, myString);


    توجه بفرمایید در تابع بالا یک متغیر رشته ای وجود دارد و بعد از آن تعداد نامعلومی متغیر که قرار است در محل های مشخص شده در متغیر رشته ای جاگذاری بشوند
    البته این مثال برای جاوا بود
    در الگوی جاری فراخوانی تابع در پایتون ، پایتون به آرگیومنت ها اجازه میده تا به دو صورت Positional یا Keyword فراخوانی بشن. در نتیجه یه آرگیومنت می تونه بطور صریح تو یه سری نام تعریف بشه و یا بصورت محل قرارگیری ( Positional ) یا تلویحی ( که در مثال های بالا بهش پرداخته شده )
    در اینجا امکان داره شرایطی پیش بیاد که یک تابع تعداد متغیری از آرگیومنت ها رو بکار بگیره. زبان پایتون با پشتیبانی از varargs با سینتکس ('*varname') تمامی آرگیومنت های سمت چپ یک تابع رو به این متغیر اختصاص میده
    در اینجا نکته ای که وجود داره اینکه تمام آرگیومنت های معمول تعریف شده در یک تابع قبل از رسیدن به varargs باید فراخونی بشن. این داستان همیشه مورد پسند برنامه نویس نیست.


    def sortwords(case_sensitive=False
    *,wordlist):
    ...

  13. #13
    کاربر دائمی آواتار Bahmany
    تاریخ عضویت
    آبان 1384
    محل زندگی
    No Where
    سن
    40
    پست
    602

    نقل قول: ارگومان های کلیدی

    حالا از همه ی این بحث ها به کدهای زیر هم نگاهی بشه خالی از لطف نیست :


    >>> def f(x,y,z):
    ... print(x,y,z)
    ...
    >>> p = (47,11,12)
    >>> f(*p)
    (47, 11, 12)


    >>> f(p[0],p[1],p[2])
    (47, 11, 12)
    >>>




    def arithmetic_mean(x, *l):
    """ The function calculates the arithmetic mean of a non-empty
    arbitrary number of numbers """
    sum = x
    for i in l:
    sum += i

    return sum / (1.0 + len(l))



    >>> from statistics import arithmetic_mean
    >>> arithmetic_mean(4,7,9)
    6.666666666666667
    >>> arithmetic_mean(4,7,9,45,-3.7,99)
    26.71666666666667



    >>> l = [4,7,9,45,-3.7,99]
    >>> arithmetic_mean(l)
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "statistics.py", line 8, in arithmetic_mean
    return sum / (1.0 + len(l))
    TypeError: unsupported operand type(s) for /: 'list' and 'float'



    >>> arithmetic_mean(*l)
    26.71666666666667
    >>>




    >>> def f(**args):
    ... print(args)
    ...
    >>> f()
    {}
    >>> f(de="Germnan",en="English",fr="French")
    {'fr': 'French', 'de': 'Germnan', 'en': 'English'}
    >>>




    >>> def f(a,b,x,y):
    ... print(a,b,x,y)
    ...
    >>> d = {'a':'append', 'b':'block','x':'extract','y':'yes'}
    >>> f(**d)
    ('append', 'block', 'extract', 'yes')






    >>> t = (47,11)
    >>> d = {'x':'extract','y':'yes'}
    >>> f(*t, **d)
    (47, 11, 'extract', 'yes')
    >>>





تاپیک های مشابه

  1. چظوری تابع بنویسم که ارگومان های وردیش متغیر باشن؟؟
    نوشته شده توسط mohsen.hex در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 5
    آخرین پست: دوشنبه 14 بهمن 1392, 22:20 عصر
  2. سوال: تعربف تابع با ارگومان های اختیاری
    نوشته شده توسط ICANICAN در بخش برنامه نویسی در 6 VB
    پاسخ: 2
    آخرین پست: پنج شنبه 09 خرداد 1392, 12:15 عصر
  3. ارسال ارگومان های تابعی از ارایه که طول ان را کاربر مشخص میکند؟
    نوشته شده توسط one hacker alone در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 4
    آخرین پست: سه شنبه 16 فروردین 1390, 12:19 عصر
  4. مقاله: پیشرفت های کلیدی Visual Studio 2010
    نوشته شده توسط silhouette در بخش مقالات مرتبط با Microsoft .Net Framework
    پاسخ: 3
    آخرین پست: یک شنبه 09 خرداد 1389, 00:17 صبح
  5. گرفتن ارگومان های وروی موقع اجرای برنامه
    نوشته شده توسط hamedgh در بخش WPF
    پاسخ: 2
    آخرین پست: شنبه 05 اردیبهشت 1388, 10:54 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •