![](https://secure.gravatar.com/avatar/f3ba3ecffd20251d73749afbfa636786.jpg?s=120&d=mm&r=g)
On 4 May 2013 05:17, "Georg Brandl" <g.brandl@gmx.net> wrote:
Am 03.05.2013 11:40, schrieb Steven D'Aprano:
On 03/05/13 18:42, Antoine Pitrou wrote:
Le Fri, 3 May 2013 09:14:22 +1000, Nick Coghlan <ncoghlan@gmail.com> a écrit :
I would suggest moving the field names into the class header for a
based convenience API:
class Animal(Enum, members='cat dog'): pass
This looks good to me (assuming some people don't like the special attribute scheme).
The problem is that this is not an expression, it is a statement. The advantage of the convenience function is not just that it is shorter, but that it is an expression.
But using that expression in any form other than
NAME = Enum('NAME', ...)
will again result in an unpicklable enum, which was the point of this
class thread. Right, if all we want is a functional API that doesn't support pickling of the resulting class, that's trivial. What I'm after is a convenience API that supports *autonumbering*, as a trivial replacement for code that currently uses "range(n)". A class statement is perfectly acceptable to me for that purpose. Independently of that, I do like the notion of a "types.set_name(cls, dotted_name)" API that alters __name__ and __module__, while leaving __qualname__ alone. Cheers, Nick.
Georg
_______________________________________________ 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/ncoghlan%40gmail.com