On Wed, Apr 2, 2008 at 5:20 PM, Guido van Rossum <[EMAIL PROTECTED]> wrote:
> On Wed, Apr 2, 2008 at 3:03 PM, Amaury Forgeot d'Arc <[EMAIL PROTECTED]>
> wrote:
> > On Wed, Apr 2, 2008 at 11:57 PM, Paul Prescod <[EMAIL PROTECTED]> 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 can find one difference:
> > - types are written in C
> > - classes are written in Python
> >
> > and there is a difference in behaviour:
> > most types don't have a writable __dict__, and you cannot add members.
> > classes are more flexible.
>
> That's more correctly described as the difference between built-in
> types/classes and user-defined types/classes.
>
> 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.)
Especially because of that I think we should change. list, dict, and set
aren't metaclasses, so it would make since to fix it.
>
>
> --
> --Guido van Rossum (home page:
> http://www.python.org/~guido/<http://www.python.org/%7Eguido/>
> )
> _______________________________________________
> Python-3000 mailing list
> [email protected]
> http://mail.python.org/mailman/listinfo/python-3000
> Unsubscribe:
> http://mail.python.org/mailman/options/python-3000/musiccomposition%40gmail.com
>
--
Cheers,
Benjamin Peterson
_______________________________________________
Python-3000 mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe:
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com