why not extending the syntax for classes, too ?
Michele Simionato
mis6 at pitt.edu
Mon Feb 10 14:30:44 EST 2003
Michael Hudson <mwh at python.net> wrote in message news:<7h3r8agz5lx.fsf at pc150.maths.bris.ac.uk>...
> mis6 at pitt.edu (Michele Simionato) writes:
>
> > > Your idea has a certain inconsistency: in the def the 'filter'
> > > callable gets the whole function object. In the class statement the
> > > 'filter' gets the bits you need to make the class.
> >
> > ? Sorry, I do not understand what do you mean :-(
>
> In your idea:
>
> def filter(*args):
> print args
>
> def func() is filter:
> pass
>
> prints: <function func at 0xXXXXXXXXX>
>
> class C is filter:
> pass
>
> prints: ('C', (), {'__module__':'__main__'})
>
> IOW lambda x:x works as a function filter but not as a class filter.
Having not followed the thread on python-dev, I see now that we are
talking about different things, whence the confusion. I had in mind
(let me use "isinstanceof" in place of "is", for clarity)
def f(x) isinstanceof descriptor:
and
def C(B) isinstanceof metaclass:
In the first case the qualifier is a descriptor, in the second case a
metaclass. I never thought to use a function as you are suggesting instead.
I have to think about.
> > > It also doesn't chain well, but given your preference of syntax, I
> > > guess you don't care :-)
> > >
> >
> > I was thinking to chain with commas, as in
> >
> > class C is Traced,Profiled,Protected: #etc. etc.
>
> Does that do the moral equivalent of
>
> class _Foo(Traced,Profiled,Protected):
> pass
>
> C = _Foo('C', (), {whatever})
>
> ?
>
> Cheers,
> M.
No, I was too much implicit.
class C(B) is Traced,Profiled,Protected:
to me was
class C(B): __metaclass__=type(
"TracedProfiledProtected",(Traced,Profiled,Protected),{})
with Traced, Profiled and Protected all metaclasses.
I must confess that I have changed my mind and now I think that "is"
actually is confusing. "isinstanceof" is what I meant.
Anyway, I trust the developers enough to give them the choice of the syntax.
I am more interested in the functionality.
>From you post, I deduce that your intended functionality, with functions
with qualifiers, is different from what I thought. At this point,
I wonder if Holger and Erik are talking about yet another functionality ...
Cheers,
Michele
More information about the Python-list
mailing list