bpo-37122: Make co->co_argcount represent the total number of positonal arguments in the code object (GH-13726)

This commit is contained in:
Pablo Galindo 2019-06-01 18:08:04 +01:00 committed by GitHub
parent 059b9ea5ac
commit cd74e66a8c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 74 additions and 88 deletions

View file

@ -907,24 +907,26 @@ Internal types
single: co_freevars (code object attribute)
Special read-only attributes: :attr:`co_name` gives the function name;
:attr:`co_argcount` is the number of positional arguments (including arguments
with default values); :attr:`co_posonlyargcount` is the number of
positional-only arguments (including arguments with default values);
:attr:`co_kwonlyargcount` is the number of keyword-only arguments (including
arguments with default values); :attr:`co_nlocals` is the number of local
variables used by the function (including arguments); :attr:`co_varnames` is a
tuple containing the names of the local variables (starting with the argument
names); :attr:`co_cellvars` is a tuple containing the names of local variables
:attr:`co_argcount` is the total number of positional arguments
(including positional-only arguments and arguments with default values);
:attr:`co_posonlyargcount` is the number of positional-only arguments
(including arguments with default values); :attr:`co_kwonlyargcount` is
the number of keyword-only arguments (including arguments with default
values); :attr:`co_nlocals` is the number of local variables used by the
function (including arguments); :attr:`co_varnames` is a tuple containing
the names of the local variables (starting with the argument names);
:attr:`co_cellvars` is a tuple containing the names of local variables
that are referenced by nested functions; :attr:`co_freevars` is a tuple
containing the names of free variables; :attr:`co_code` is a string representing
the sequence of bytecode instructions; :attr:`co_consts` is a tuple containing
the literals used by the bytecode; :attr:`co_names` is a tuple containing the
names used by the bytecode; :attr:`co_filename` is the filename from which the
code was compiled; :attr:`co_firstlineno` is the first line number of the
function; :attr:`co_lnotab` is a string encoding the mapping from bytecode
offsets to line numbers (for details see the source code of the interpreter);
:attr:`co_stacksize` is the required stack size (including local variables);
:attr:`co_flags` is an integer encoding a number of flags for the interpreter.
containing the names of free variables; :attr:`co_code` is a string
representing the sequence of bytecode instructions; :attr:`co_consts` is
a tuple containing the literals used by the bytecode; :attr:`co_names` is
a tuple containing the names used by the bytecode; :attr:`co_filename` is
the filename from which the code was compiled; :attr:`co_firstlineno` is
the first line number of the function; :attr:`co_lnotab` is a string
encoding the mapping from bytecode offsets to line numbers (for details
see the source code of the interpreter); :attr:`co_stacksize` is the
required stack size (including local variables); :attr:`co_flags` is an
integer encoding a number of flags for the interpreter.
.. index:: object: generator