What is the purpose of bare asterix in function arguments?
I've seen this SO question (this is not a duplicate): Python bare asterisk in function argument In python-3.x you can add a bare * to the function arguments, this means that (quote from docs ): Parameters after “*” or “*identifier” are keyword-only parameters and may only be passed used keyword arguments. Ok, so, I've defined a function: >>> def f(a, b, *, c=1, d=2, e=3): ... print('Hello, world!') ... I can pass c , d and e variable values only by specifying keywords: >>> f(1, 2, 10, 20, 30) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: f() takes 2