diff options
Diffstat (limited to 'tests/basics/fun_kwonly.py')
-rw-r--r-- | tests/basics/fun_kwonly.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/tests/basics/fun_kwonly.py b/tests/basics/fun_kwonly.py new file mode 100644 index 0000000000..bdff3a8210 --- /dev/null +++ b/tests/basics/fun_kwonly.py @@ -0,0 +1,59 @@ +# to test keyword-only arguments + +# simplest case +def f(*, a): + print(a) + +f(a=1) + +# with 2 keyword-only args +def f(*, a, b): + print(a, b) + +f(a=1, b=2) +f(b=1, a=2) + +# positional followed by bare star +def f(a, *, b, c): + print(a, b, c) + +f(1, b=3, c=4) +f(1, c=3, b=4) +f(1, **{'b':'3', 'c':4}) + +try: + f(1) +except TypeError: + print("TypeError") + +try: + f(1, b=2) +except TypeError: + print("TypeError") + +try: + f(1, c=2) +except TypeError: + print("TypeError") + +# with **kw +def f(a, *, b, **kw): + print(a, b, kw) + +f(1, b=2) +f(1, b=2, c=3) + +# with named star +def f(*a, b, c): + print(a, b, c) + +f(b=1, c=2) +f(c=1, b=2) + +# with positional and named star +def f(a, *b, c): + print(a, b, c) + +f(1, c=2) +f(1, 2, c=3) +f(a=1, c=3) |