I recall that Python guarantees that module objects are singletons, and that this must hold for any implementation, not just CPython: you can only ever create one instance of a module via the import mechanism. But my google-foo is obviously weak today, I cannot find where the Python language reference guarantees that. Can somebody please point me at the link making that guarantee?
(Note: you can create multiple modules with the same name and state using new.module. I don't think that counts, although it may be a good way to win bar bets with your Python buddies.) But what about classes? Are they singletons? Obviously classes aren't Singleton classes, that is, given an arbitrary class C you can create multiple instances of C. But what about class objects themselves? I've found a few odd references to "classes are singletons", but nothing in the language reference. I've done some experimentation, e.g.: >>> import module >>> from module import Class >>> module.Class is Class True but I'm not sure if that's (1) meaningful or (2) implementation-specific. -- Steven -- http://mail.python.org/mailman/listinfo/python-list