[Python-3000] Types and classes
Guido van Rossum
guido at python.org
Thu Apr 3 01:51:21 CEST 2008
No, we're not renaming fundamentals like that. 3.0a4 goes out tomorrow
and we want stability.
On Wed, Apr 2, 2008 at 4:39 PM, Robert Brewer <fumanchu at aminus.org> wrote:
> Guido van Rossum wrote:
> > On Wed, Apr 2, 2008 at 11:57 PM,
> > Paul Prescod <paul at prescod.net> wrote:
> > > But does anyone else find it odd that the types of some things
> > > are classes and the classes of some things are types?
> > >
> > > >>> type(socket.socket())
> > > <class 'socket.socket'>
> > > >>> type("abc")
> > > <type 'str'>
> > > >>> socket.socket().__class__
> > > <class 'socket.socket'>
> > > >>> "abc".__class__
> > > <type 'str'>
> > >
> > > In a recent talk I could only explain this as a historical quirk.
> > > As I understand, it is now possible to make types that behave
> > > basically exactly like classes and classes that behave exactly
> > > like types. Is there any important difference between them anymore?
> >
>
> > I think it's still just a historical quirk; maybe we should bite the
> > bullet and fix this in py3k. (Still, 'type' and 'class' will both be
> > part of the language, one as a built-in function and metaclass, the
> > other as a keyword.)
>
> That's...grating, but livable. Maybe we should change "class" to
> "classdef" and "type" to "class" so code like "isinstance(x, type)"
> doesn't look so...wrong.
>
> On the other hand, why is there no "function" builtin/metaclass to go
> with the "def" keyword? The asymmetry implies a semantic conflict
> somewhere (it doesn't *prove* that, just implies).
>
>
> Robert Brewer
> fumanchu at aminus.org
>
>
--
--Guido van Rossum (home page: http://www.python.org/~guido/)
More information about the Python-3000
mailing list