On 26/04/13 13:22, Greg wrote:
On 26/04/2013 3:12 p.m., Glenn Linderman wrote:
On 4/25/2013 7:49 PM, Nick Coghlan wrote:
You couldn't create an enum of callables, but that would be a
seriously weird thing to do anyway....
But aren't all classes callable?
An enum of classes would be seriously weird as well, I think.
I don't think iscallable will work, since that descriptors like
staticmethod and classmethod aren't callable. Nor are properties.
I think a solution may be an explicit decorator that tells the
metaclass not to skip the object into an enum value:
class Insect(enum.Enum):
ant = 1
bee = 2
@enum.skip
@classmethod
def spam(cls, args):
pass
assert isinstance(Insect.spam, classmethod)
One side effect of this is that now you can (ab)use the decorator
to have regular data attributes. Whether that counts as a good
thing or a bad thing, I leave up to others to decide...
--
Steven
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com