> We should have a mechanism that collects the current function or method's
> parameters into a dict, similar to the way locals() returns all local
> variables.
Maybe I'm missing something here, but how about... `locals`? It works exactly
as you hope:
```
def __init__(self, argument_1, argument_2, argument_3=None):
for name, value in locals().items():
if name != "self":
setattr(self, name, value)
```
It's a fairly common idiom to just collect `locals()` on the first line of a
function or method with lots of arguments, if they're just going to be passed
along or processed directly. That way, you get the flexibility of `**kwargs`,
but without losing tab-completion, annotations, helpful `help`, and other
introspection.
```
>>> def foo(bar, baz=7, *spam, eggs, cheese=7, **other):
... kwargs = locals()
... # Do some stuff...
... return kwargs # Just to see what's in here!
...
>>> foo(5, eggs=6, blah='blah')
{'bar': 5, 'baz': 7, 'eggs': 6, 'cheese': 7, 'spam': (), 'other': {'blah':
'blah'}}
```
Brandt
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/[email protected]/message/FUH5ZS5NPR6673PNRP5BBV2W2DT7727K/
Code of Conduct: http://python.org/psf/codeofconduct/