Automatic binding of **kwargs to variables
bonono at gmail.com
bonono at gmail.com
Sun Oct 30 01:30:15 EDT 2005
Don't know about this particular case but sometimes, I don't want to
have a default argument value. That is, argument not there is different
from argument = None. Though in general, I prefer the None as special
meaning coding style. But even python's builtin function prefers to
distinguish between "not there" and None.
Alex Martelli wrote:
> lbolognini at gmail.com <lbolognini at gmail.com> wrote:
> ...
> > def foo(**kwargs):
> > expected_form1_kwargs = ["arg1", "arg2"]
> >
> > for name in expected_form1_kwargs:
> > if name not in kwargs:
> > kwargs[name]=None
> >
> > for name in kwargs:
> > if name in kwargs and name not in expected_form1_kwargs:
> > raise ValueError, "Unrecognized keyword: " + name
> >
> > print kwargs
>
> I find this style of coding repulsive when compared to:
>
> def foo(arg1=None, arg2=None):
> print dict(arg1=arg1, arg2=arg2)
>
> I don't understand what added value all of those extra, contorted lines
> are supposed to bring to the party.
>
>
> Alex
More information about the Python-list
mailing list