[Python-Dev] issue5578 - explanation

Chris Withers chris at simplistix.co.uk
Thu Apr 2 23:21:31 CEST 2009


Guido van Rossum wrote:
>> from functools import partial
>> from new import instancemethod
>>
>> def meth(name,self,*args):
>>    return getattr(self._sock,name)(*args)
>>
>> for _m in _socketmethods:
>>    p = partial(meth,_m)
>>    p.__name__ = _m
>>    p.__doc__ = getattr(_realsocket,_m).__doc__
>>    m = instancemethod(p,None,_socketobject)
>>    setattr(_socketobject,_m,m)
>>
>> Have I missed something or is that a suitable replacement that gets rid of
>> the exec nastiness?
> 
> That code in socket.py is much older that functools... I don't know if
> the dependency matters, probably not.
> 
> But anyways this is moot, the bug was only about exec in a class body
> *nested inside a function*.

Indeed, I just hate seeing execs and it was an interesting mental 
exercise to try and get rid of the above one ;-)

Assuming it breaks no tests, would there be objection to me committing 
the above change to the Python 3 trunk?

Chris

-- 
Simplistix - Content Management, Zope & Python Consulting
            - http://www.simplistix.co.uk


More information about the Python-Dev mailing list