[Python-3000] PEP for Metaclasses in Python 3000

Phillip J. Eby pje at telecommunity.com
Tue Mar 13 16:41:47 CET 2007


At 09:45 PM 3/12/2007 -0600, Steven Bethard wrote:
>On 3/12/07, Phillip J. Eby <pje at telecommunity.com> wrote:
> > At 09:32 PM 3/12/2007 -0600, Steven Bethard wrote:
> > >On 3/12/07, Steven Bethard <steven.bethard at gmail.com> wrote:
> > > > the signature of the method called will be::
> > > >     __prepare__(name, args, kwargs)
> > > > not
> > > >     __prepare__(name, *args, **kwargs)
> > > > right?
> > >
> > >On 3/12/07, Guido van Rossum <guido at python.org> wrote:
> > > > I'm not sure anyone has thought much about it yet. I wonder
> > > > if the call shouldn't be made like this:
> > > >
> > > > __prepare__(name, bases, **kwargs)
> > > >
> > > > so that if you only expect certain specific keyword args you can
> > > > define it like this:
> > > >
> > > > def __prepare__(name, base, metaclass=X): ...
> > >
> > >Yeah, seems like **kwargs would be more useful in practice.
> >
> > Really?  Why?  I can more easily see circumstances where you'd want to
> > restrict the arguments. In the cases I have where I'd switch from a class
> > decorator to a class keyword, I have a small set of decorators and would
> > have an equally small set of keywords.
>
>Maybe I'm misunderstanding but isn't this a reason that you'd *want*
>the ``**kwargs`` signature?

Sorry, I thought you were saying that **kwargs in the *receiver signature* 
would be more useful...  not **kwargs in the *calling* signature, which is 
of course what Guido proposed.



More information about the Python-3000 mailing list