Message404068
The standard library documentation on module inspect starts with an overview of types and attributes. This overview (in all Python versions) states:
code.co_names: tuple of names of local variables
code.co_varnames: tuple of names of arguments and local variables
That suggests the argument names are set(code.co_varnames) - set(code.co_names), which is incorrect.
I think the attribute description should be:
code.co_names: tuple of names of used global and built-in variables
>>> def f(x): a = 1; print(f, a)
>>> assert f.__code__.co_varnames == ('x', 'a') # argument and local, in that order
>>> assert set(f.__code__.co_names) == set(('f', 'print')) # global and built-in (don't care order), not local |
|
Date |
User |
Action |
Args |
2021-10-16 10:45:28 | Dutcho | set | recipients:
+ Dutcho, docs@python |
2021-10-16 10:45:28 | Dutcho | set | messageid: <1634381128.63.0.689395571563.issue45492@roundup.psfhosted.org> |
2021-10-16 10:45:28 | Dutcho | link | issue45492 messages |
2021-10-16 10:45:28 | Dutcho | create | |
|