Difference between default arguments and keyword arguments
Edward Diener
eldiener at earthlink.net
Sun Apr 4 09:57:23 EDT 2004
DoubleM wrote:
> Edward Diener wrote:
>> In the tutorial on functions there are sections on default arguments
>> and keyword arguments, yet I don't see the syntactic difference
>> between them. For default arguments the tutorial shows:
>>
>> def ask_ok(prompt, retries=4, complaint='Yes or no, please!'):
>>
>> while for keyword arguments the tutorial shows:
>>
>> def parrot(voltage, state='a stiff', action='voom', type='Norwegian
>> Blue'):
>>
>> The syntax 'keyword = value' is used for both as far as I can see.
>> How does one distinguish between them or are they both part of the
>> same combined concept, which is: if one calls the function with less
>> than the required number of arguments but does specify keyword
>> values, those values are used, else the defaults are supplied. Or is
>> there really a syntactic difference between default arguments and
>> keyword arguments which I have missed above ?
>>
>>
> All arguments are keyword arguments. They may or may not have a
> default value. In your example, voltage is a keyword argument, but
> it has no default.
>
> Consider the following:
> >>> def fn(a,b):
> print 'a = ',a
> print 'b = ',b
>
>
> >>> fn(b=1,a=2)
> a = 2
> b = 1
> >>> fn(1,2)
> a = 1
> b = 2
Makes sense. Thanks ! The tutorial should explain it more clearly.
More information about the Python-list
mailing list