On Sun, Feb 24, 2008 at 6:49 AM, Neal Becker <[EMAIL PROTECTED]> wrote: > > Guido van Rossum wrote: > > > On Sat, Feb 23, 2008 at 4:55 PM, Neal Becker <[EMAIL PROTECTED]> wrote: > >> There is some discussion on this subject, archived here: > >> http://permalink.gmane.org/gmane.comp.python.general/560661 > >> > >> I wonder if anyone could shed some light on this subject? > >> > >> (Or, help me understand, what is the difference between a type that I > >> create using python C api and a python class?) > > > > This is prohibited intentionally to prevent accidental fatal changes > > to built-in types (fatal to parts of the code that you never though > > of). Also, it is done to prevent the changes to affect different > > interpreters residing in the address space, since built-in types > > (unlike user-defined classes) are shared between all such > > interpreters. > > > > Thanks for the info. > > I'm still curious. What if I wanted to create a 'real' python class using > python c-api? How is that done?
Use PyObject_Call() or one of its friends to call PyType_Type with the appropriate arguments (a name, a tuple of base classes, and a dict of methods etc.). This is the same as calling type(name, bases, namespace) from Python. The type object will be on the heap and fully mutable. -- --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com