The hardest problem in computer science...

Paul Moore p.f.moore at gmail.com
Tue Jan 10 11:06:35 EST 2017


On Tuesday, 10 January 2017 15:47:20 UTC, Paul  Moore  wrote:
> On Saturday, 7 January 2017 19:14:43 UTC, Ethan Furman  wrote:
> > Ya know, that looks an /awful/ lot like a collection!  Maybe even an Enum?  ;)
> > 
> > -- 8< -------------------------------------------------------
> > from aenum import Enum   # note the 'a' before the 'enum'  :)
> > 
> > class Theme(Enum, init='v vr llc'):
> >      DEFAULT = "│  ", "├─ ", "└─ "
> >      BOLD = "┃  ", "┣━ ", "┗━ "
> >      ASCII = "|  ", "|- ", "+- "
> > 
> > def draw_tree(tree, theme=Theme.DEFAULT):
> >      print(theme.v)
> >      print(theme.vr)
> >      print(theme.v)
> >      print(theme.llc)
> > 
> > draw_tree(None)
> 
> I noted the "a" before enum :-)
> 
> Is the implication that this form (a sort of combined namedtuple/enum) *isn't* possible with the stdlib enum? But rather that it's specific to your aenum module? I don't see any documentation for the "init" parameter in either version, so I'm a little puzzled.
> 
> The capability seems neat, although (as is probably obvious) the way you declare it seems a little confusing to me.
> 
> Paul

After a bit more digging I found https://docs.python.org/3.6/library/enum.html#planet which looks like a stdlib-supported way of doing the same sort of thing. I assume init is an aenum convenience argument to do the same?

Anyway, it's a neat feature - I'd not really looked beyond the surface of the new enum module, looks like I missed some good stuff :-)

Paul


More information about the Python-list mailing list