Is enum iteration order guaranteed?

Steven D'Aprano steve+comp.lang.python at pearwood.info
Tue Jan 10 00:18:09 EST 2017


The docs say that enums can be iterated over, but it isn't clear to me whether 
they are iterated over in definition order or value order.

If I have:

class MarxBros(Enum):
    GROUCHO = 999
    CHICO = 5
    HARPO = 11
    ZEPPO = auto()
    GUMMO = -1

GROUCHO, CHICO, HARPO, ZEPPO, GUMMO = list(MarxBros)


is that guaranteed to do the right thing?

i.e. GROUCHO is MarxBros.GROUCHO, and similarly for the other members.




On that related note, how would people feel about a method that injects enums 
into the given namespace?

MarxBros._inject_(globals())

although maybe 

from MarxBros import *

would be more familiar syntax :-)





-- 
Steven
"Ever since I learned about confirmation bias, I've been seeing 
it everywhere." - Jon Ronson




More information about the Python-list mailing list