[Types-sig] Re: Meta-classes discussion starter

M.-A. Lemburg mal@lemburg.com
Wed, 02 Dec 1998 10:31:28 +0100


Just van Rossum wrote:
> 
> +       {
> +               PyObject *callable = NULL;
> +               callable = PyDict_GetItemString(methods, "__class__");
> +               if (callable) {
> +                       PyObject *args;
> +                       PyObject *newclass = NULL;
> +                       PyDict_DelItemString(methods, "__class__");
> +                       args = Py_BuildValue(
> +                               "(OOO)", name, bases, methods);
> +                       if (args != NULL) {
> +                               newclass = PyEval_CallObject(
> +                                       callable, args);
> +                               Py_DECREF(args);
> +                       }
> +                       return newclass;
> +               } else {
> +                       PyErr_Clear();
> +               }
> +       }
> +       /*      __END__ of Just's Hook */

I like the patch... but why do you delete the __class__ attribute ?
To prevent endless recursion in some weird cases ?

-- 
Marc-Andre Lemburg                               Y2000: 394 days left
---------------------------------------------------------------------
          : Python Pages >>> http://starship.skyport.net/~lemburg/  :
           ---------------------------------------------------------