what does := means simply?
Chris Angelico
rosuav at gmail.com
Thu May 17 11:06:55 EDT 2018
On Fri, May 18, 2018 at 12:30 AM, bartc <bc at freeuk.com> wrote:
> Anyway, try this:
>
> def showarg(x): print(x)
>
> def dummy(*args,**kwargs): pass
>
> dummy(a=showarg(1),*[showarg(2),showarg(3)])
>
> This displays 2,3,1 showing that evaluation is not left to right.
>
Keyword args are evaluated after positional args. It's a bad idea to
put positional after keyword; you risk mis-identifying your args:
>>> def dummy(a, b, c): pass
...
>>> dummy(a=showarg(1),*[showarg(2),showarg(3)])
2
3
1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: dummy() got multiple values for argument 'a'
Evaluation is not always left to right, but it is always well-defined.
ChrisA
More information about the Python-list
mailing list