I am learning to use positional arguments in python and also trying to see how they work when mixed up with default arguments:-
def withPositionalArgs(ae=9,*args):
print 'ae= ', ae
print 'args = ', args
a=1
b=2
c=[10,20]
withPositionalArgs(a,b,c)
This gives me the output:
ae= 1
args = (2, [10, 20])
As you can see, a
is considered to be a value passed for ae
, and b
as well as c
are considered to be the positional arguments.
So, I am now trying to assign 10
for ae
while calling withPositionalArgs
:
withPositionalArgs(ae=10,b,c)
But, I can not do it. I get the error:
SyntaxError: non-keyword arg after keyword arg
My question is:
Am I doing correctly? Is having default argument allowed or a good practice to use before positional arguments in python functions?