On 4 May 2013 05:17, "Georg Brandl" <g.bra...@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 <ncogh...@gmail.com> a > >> écrit : > > > >>> I would suggest moving the field names into the class header for a class > >>> 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 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
_______________________________________________ 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