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