A question of style (finding item in list of tuples)
Roy Smith
roy at panix.com
Mon May 21 08:37:29 EDT 2012
I've got this code in a django app:
CHOICES = [
('NONE', 'No experience required'),
('SAIL', 'Sailing experience, new to racing'),
('RACE', 'General racing experience'),
('GOOD', 'Experienced racer'),
('ROCK', 'Rock star'),
]
def experience_text(self):
for code, text in self.CHOICES:
if code == self.level:
return text
return "????"
Calling experience_text("ROCK") should return "Rock star". Annoyingly,
django handles this for you automatically inside a form, but if you also
need it in your application code, you have to roll your own.
The above code works, but it occurs to me that I could use the much
shorter:
def experience_text(self):
return dict(CHOICES).get("self.level", "???")
So, the question is, purely as a matter of readability, which would you
find easier to understand when reading some new code? Assume the list
of choices is short enough that the cost of building a temporary dict on
each call is negligible. I'm just after style and readability here.
More information about the Python-list
mailing list