Jan. 24, 2008
8:57 p.m.
Something like "wheres= Enum( UP= 0, DOWN= 0, LEFT= 0, RIGHT= 0 )" is easily written as:
class wheres: @staticmethod def reassign(): wheredir= [ v for v in dir( wheres ) if not callable( getattr( wheres, v ) ) and not v.startswith( '_' ) ] for i, v in enumerate( wheredir ): setattr( wheres, v, i ) UP = 0; DOWN = 0; LEFT = 0; RIGHT = 0 wheres.reassign()
We typically reassign enum values once they're assigned, and sometimes just add new ones. I tend to write new classes where I think people use enums. 20% longer code; 80% fewer ifs. [1] [1] http://en.wikipedia.org/wiki/Visitor_pattern