[Python-Dev] Classes that claim to be defined in __builtin__ but aren't

Jp Calderone exarkun at divmod.com
Tue Aug 10 16:02:36 CEST 2004


Michael Hudson wrote:
> James Y Knight <foom at fuhm.net> writes:
>>IMO classes ought to actually appear in __builtin__ if they claim they
>>are defined there. Doing otherwise breaks reflection, as you have to
>>add a special case for these class names to use the appropriate object
>>from the types module instead. Thoughts? If it isn't desirable to have
>>these names appear in __builtin__, perhaps their '__module__' should
>>be changed to another module where they are defined?
> 
> 
> Such as?  There really isn't a module where e.g. GeneratorType is
> defined.
> 

   Seems perfectly reasonable and useful to add GeneratorType and others 
to the types module.  I have code, for example, like this, in a couple 
places:

     def _getACell(o):
         x = o
         def y():
             y = x
         return [o for o in gc.get_referrers(x)
                 if type(o).__name__ == 'cell'][0]

     def _f():
         types.CellType = type(_getACell(object()))
     _f()

   Jp



More information about the Python-Dev mailing list