On 6/15/2010 9:33 PM, Stephen Hansen wrote:
On 6/15/10 9:16 PM, John Nagle wrote:
Cute, but it doesn't work in general. Faking a module as a
class fails when you simply call
x()
within the module.
Huh? Explain how it doesn't work? I've done it at least twice
(shamefully do I admit this) and it works fine. Real life code.
Any more ideas?
There aren't any; modules do not follow the class object protocol. They
are simple types with a __dict__ (which you can't change, either, so no
replacing it with a dict that implements __setattr__).
Replacing the module with a class in sys.modules is really the only way
to fake the behavior.
OK, working on this. I can make a module make itself into a
fake class, but can't yet do it to other modules from outside.
John Nagle
--
http://mail.python.org/mailman/listinfo/python-list