> > > >The big problem is that it would require a major rewrite of the sys > > > >module, wouldn't it? > > > > > > Under 2.2 this would be easy because you could just do 'sys.__class__ = > > > MyNewSysClass'. Can you still do that in 2.3 as long as > > 'MyNewSysClass' is > > > a non-heap type with a compatible layout? > > > >I very much doubt that this worked in any version of Python 2.2 or > >later. > > Python 2.2.2 (#37, Oct 14 2002, 17:02:34) [MSC 32 bit (Intel)] on win32 > Type "copyright", "credits" or "license" for more information. > IDLE 0.8 -- press F1 for help > >>> from types import ModuleType > >>> import sys > >>> class NewSys(ModuleType): > __slots__ = () > def exc_type(self): > return self.__dict__['exc_type'] > exc_type = property(exc_type) > > >>> sys.__class__ = NewSys > >>> try: > raise TypeError > except: > print sys.exc_type > > > exceptions.TypeError > >>> > > >>> sys.exc_type = 1 > Traceback (most recent call last): > File "<pyshell#33>", line 1, in ? > sys.exc_type = 1 > AttributeError: can't set attribute > >>> sys.__class__ = ModuleType > >>> sys.exc_type = 1 > >>> OK, so it worked. It doesn't work in 2.3. But something else might work. --Guido van Rossum (home page: http://www.python.org/~guido/)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4