was: Re: looking for MOP documentation
tanzer at swing.co.at
Fri Sep 19 09:18:40 CEST 2003
Peter Hansen <peter at engcorp.com> wrote:
> Alan Kennedy wrote:
> > Peter Hansen wrote:
> > > Key phrase: "Metaobject protocols are interfaces to the language
> > > that give users the ability to incrementally modify the language's
> > > behavior and implementation...". Near as I can tell, part of the
> > > whole character of Python is that a user *cannot* do either of
> > > those things.
> > Hmm, does this rephrasing hold any truth?
> > "Metaclasses are interfaces to the python language
> > that give users the ability to incrementally modify the language's
> > behavior and implementation...".
> > Isn't modifying standard behaviour the whole purpose of metaclasses?
> But it doesn't really modify the *language's* behaviour in the way
> implied by a simplistic reading of the above phrase. That is, the
> "obvious" interpretation is that syntax and grammar are being affected,
> not just the behaviour of one small slice of the language, specifically
> how classes behave. In some languages the two things are not so
> separate, but in Python they seem to be.
Are you sure?
Python 2.2.3 (#1, Jun 18 2003, 15:54:07)
[GCC 2.95.4 20011002 (Debian prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> class Nasty(type) :
... def __new__(cls,name,bases,d):
... return 1
>>> class Surprise(object):
... __metaclass__ = Nasty
Christian Tanzer tanzer at swing.co.at
More information about the Python-list