7.9 Enumerations
Bob’s Bakery Bistro makes and sells four kinds of cookies: chocolate, sugar, oatmeal, and shortbread. Bob hires ace coder Will to write a new cookie inventory application for the bistro using Python.
How should Will represent the cookies? One way is to use global constants.
CHOCOLATE_COOKIE = 0
SUGAR_COOKIE = 1
OATMEAL_COOKIE = 2
SHORTBREAD_COOKIE = 3
COOKIE_NAMES = [
"chocolate",
"sugar",
"oatmeal",
"shortbread"
]
It’s easy to get the name if you have the cookie constant:
COOKIE_NAMES[SUGAR_COOKIE]
'sugar'
It’s less obvious how to go from the name to the cookie constant unless we make some assumptions about positions and indices. You can easily introduce bugs into your code if you start adding more kinds of cookies.
It would be nice to have a simpler and class-oriented way of doing this in Python. This...