Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Distinction between Default Argument Values and Keyword Arguments?

Tags:

python

Are default argument values perceived as keyword arguments by Python? I'm not able understand the distinction

I can't understand this thread: Normal arguments vs. keyword arguments

On a side note, most tutorials and video series seemed to be geared towards Python 2.*. Should I learn Python 3 instead Python 2 or can I make the transition later easily? I'm just learning this out of curiosity.

Thanks in advance.

like image 302
BobLoblaw Avatar asked Oct 14 '12 02:10

BobLoblaw


People also ask

What is the difference between default arguments and keyword arguments?

Keyword arguments allow us to employ any order, whereas default arguments assist us to deal with the absence of values. And finally, in Python, arbitrary arguments come in handy when we don't know how many arguments are needed in the program at that moment.

What is the difference between calling function with keyword arguments and default arguments give an example?

Keyword arguments are how you call a function. Default values are how a function is defined.

What is the difference between keyword and argument?

In the case of Normal Arguments, only the value is passed to the function definition. The number of arguments during function call should be equal to the Parameters passed in the function definition. While in the case of Keyword Arguments, you pass the argument value along with the keyword during the function call.

What is a default value or keyword?

A default value expression produces the default value of a type. There are two kinds of default value expressions: the default operator call and a default literal. You also use the default keyword as the default case label within a switch statement.

What do you mean by keyword and default arguments in python?

Python has a different way of representing syntax and default values for function arguments. Default values indicate that the function argument will take that value if no argument value is passed during the function call. The default value is assigned by using the assignment(=) operator of the form keywordname=value.

What are the 3 types of arguments in Python?

Hence, we conclude that Python Function Arguments and its three types of arguments to functions. These are- default, keyword, and arbitrary arguments.


2 Answers

Both concepts are (mostly) distinct.

On function definition side, you have named parameters which have names, and you have variadic extensions, one for positional arguments (giving a tuple) and one for keyboard arguments (giving a dict).

Example:

def f(a, b=5, *c, **d): return a, b, c, d

This function has two named parameters (aand b) which can be used positional or via keyword. c and d take all others given.

You can call this function with positional arguments as well as with keyword arguments.

f(1)
f(a=1)

both return

1, 5, (), {}

because positional and keyword arguments are assigned to the named parameters.

You can as well do

f(a=5, foo=12) or f(5, foo=12) # -> 5, 5, (), {'foo': 12}
f(1, 2, 3) # -> 1, 2, (3,), {}

In the last example, the positional arguments 1 and 2 are given to the named parameters a and b; the exceeding 3 is put into the tuple c.

You cannot do

f(b=90) # no value for a
f(12, a=90) # two values for a

If there are still unclearities, please let me know.

like image 136
glglgl Avatar answered Sep 30 '22 17:09

glglgl


From what I see people tend to use both term interchangeably

I see that this question is quite old , but will add my two-cents anyway.

The term Default-Arguments ( a.k.a "Default-Parameters") is the term you will generally use while defining your function; within the header of the def statement:

When defining your function you can view it in your head as follows:

def function1(positional_parameter, default_parameter="default-output"):
    pass

However you will generally use the term "Keyword-Argument" when you're attempting to call a function.

when calling the function you can view it in your head as follows:

function1(positional_argument, keyword_argument="change-output") 
  • hope this makes sense *
like image 28
Jeff - Mci Avatar answered Sep 30 '22 17:09

Jeff - Mci