
Barry Warsaw wrote:
On Jul 27, 2011, at 07:21 PM, Guido van Rossum wrote:
It's just possible that there's no way to define enums that neither introduced a new (class) scope nor requires a lot of redundant typing.
Ezio had a very nice suggestion, which I've implemented in my experimental branch, e.g.:
>>> foo = sys.modules['foo'] >>> Colors.inject(foo)
.inject() takes anything that implements the setattr() protocol. So that you could then do:
>>> import foo >>> foo.red Colors.red
I've been reading this thread with a growing sense of dismay. I started off excited by the idea that enums would be added to the language, and thinking that Raymond's opposition was uncalled for. Then, as more and more features and metafeatures have been proposed, I've now changed my mind completely and am now with Raymond. I don't even know what these "enums" actually are any more. Part integer, part string, part namespace, part named constant (only not actually constant)... It seems to me that people are trying to dump a whole lot of only vaguely related functionality into a single concept. Including now a proposal to encourage monkey-patching modules by making it an official enum method. For something that is conceptually so simple, this is becoming awfully complicated. -- Steven