diff options
-rw-r--r-- | Lib/test/test_extcall.py | 6 | ||||
-rw-r--r-- | Python/ceval.c | 4 |
2 files changed, 8 insertions, 2 deletions
diff --git a/Lib/test/test_extcall.py b/Lib/test/test_extcall.py index a5af50b..cf882a5 100644 --- a/Lib/test/test_extcall.py +++ b/Lib/test/test_extcall.py @@ -280,6 +280,12 @@ The number of arguments passed in includes keywords: Traceback (most recent call last): ... TypeError: f() takes exactly 1 argument (5 given) + >>> def f(a, *, kw): + ... pass + >>> f(6, 4, kw=4) + Traceback (most recent call last): + ... + TypeError: f() takes exactly 2 arguments (3 given) """ import sys diff --git a/Python/ceval.c b/Python/ceval.c index 22c6155..0bd785b 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -3078,8 +3078,8 @@ PyEval_EvalCodeEx(PyCodeObject *co, PyObject *globals, PyObject *locals, "argument%s (%d given)", co->co_name, defcount ? "at most" : "exactly", - co->co_argcount, - co->co_argcount == 1 ? "" : "s", + total_args, + total_args == 1 ? "" : "s", argcount + kwcount); goto fail; } |