tests: Add more tests for default keyword-only args.
This commit is contained in:
parent
049a7a8153
commit
9e951498b2
@ -43,15 +43,6 @@ def f(a, *, b, **kw):
|
||||
f(1, b=2)
|
||||
f(1, b=2, c=3)
|
||||
|
||||
# with a default value
|
||||
def g(a, *, b=2, c):
|
||||
print(a, b, c)
|
||||
|
||||
g(1, c=3)
|
||||
g(1, b=3, c=4)
|
||||
g(1, **{'c':3})
|
||||
g(1, **{'b':'3', 'c':4})
|
||||
|
||||
# with named star
|
||||
def f(*a, b, c):
|
||||
print(a, b, c)
|
||||
|
36
tests/basics/fun-kwonlydef.py
Normal file
36
tests/basics/fun-kwonlydef.py
Normal file
@ -0,0 +1,36 @@
|
||||
# test function args, keyword only with default value
|
||||
|
||||
# a single arg with a default
|
||||
def f1(*, a=1):
|
||||
print(a)
|
||||
f1()
|
||||
f1(a=2)
|
||||
|
||||
# 1 arg default, 1 not
|
||||
def f2(*, a=1, b):
|
||||
print(a, b)
|
||||
f2(b=2)
|
||||
f2(a=2, b=3)
|
||||
|
||||
# 1 positional, 1 arg default, 1 not
|
||||
def f3(a, *, b=2, c):
|
||||
print(a, b, c)
|
||||
f3(1, c=3)
|
||||
f3(1, b=3, c=4)
|
||||
f3(1, **{'c':3})
|
||||
f3(1, **{'b':'3', 'c':4})
|
||||
|
||||
# many args, not all with defaults
|
||||
def f4(*, a=1, b, c=3, d, e=5, f):
|
||||
print(a, b, c, d, e, f)
|
||||
f4(b=2, d=4, f=6)
|
||||
f4(a=11, b=2, d=4, f=6)
|
||||
f4(a=11, b=2, c=33, d=4, e=55, f=6)
|
||||
f4(f=6, e=55, d=4, c=33, b=2, a=11)
|
||||
|
||||
# positional with default, then keyword only
|
||||
def f5(a, b=4, *c, d=8):
|
||||
print(a, b, c, d)
|
||||
f5(1)
|
||||
f5(1, d=9)
|
||||
f5(1, b=44, d=9)
|
Loading…
Reference in New Issue
Block a user