![](https://secure.gravatar.com/avatar/0f393da4b8265592816178e5ff6c1c62.jpg?s=120&d=mm&r=g)
On Thu, May 24, 2018 at 8:00 AM Serhiy Storchaka <storchaka@gmail.com> wrote:
24.05.18 11:38, Neil Girdhar пише:
I was previously constructing an object like this:
tb = TemporalBehavior(**kwargs, **parameters)
where various subclasses were doing things like
def __init__(self, some_kwarg, some_other_kwargs, some_parameter, some_other_parameter):
Then I realized that I want to pass the paramters as a dictionary so that I can store it.. I changed the code to this:
def __init__(self, some_kwarg, some_other_kwargs, parameters):
but I still need "some_parameter", so I did
some_parmeter = parameters['some_parameter'] some_other_parmeter = parameters['some_other_parameter']
Great, but now I have to check that exactly the list of parameters that I need is being sent in, so I need to do something like
if set(parameters) != ('some_parameter', 'some_other_parameter'): raise ValueError
It might be nice to do instead
{'some_parameter': p, 'some_other_parameter': q} = parameters
p = parameters.pop('some_parameter') q = parameters.pop('some_other_parameter') if parameters: raise ValueError
parameters is a Mapping subclass and I don't want to destroy it
or
p, q = (lambda some_parameter, some_other_parameter: some_parameter, some_other_parameter)(**parameters)
that works
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/
--
--- You received this message because you are subscribed to a topic in the Google Groups "python-ideas" group. To unsubscribe from this topic, visit https://groups.google.com/d/topic/python-ideas/rupoMkwAhi0/unsubscribe. To unsubscribe from this group and all its topics, send an email to python-ideas+unsubscribe@googlegroups.com. For more options, visit https://groups.google.com/d/optout.