Enum vs OrderedEnum

Ethan Furman ethan at stoneleaf.us
Tue Aug 6 19:12:49 EDT 2013


On 08/06/2013 04:00 PM, Ian Kelly wrote:

Use the .value attribute instead.  You could also substitute self for Environment.


> class Environment(Enum):
>
>      gaia = 1
>      fertile = 2
>      terran, jungle, ocean, arid, steppe, desert, minimal = range(3, 10)
>      barren, tundra, dead, inferno, toxic, radiated = range(10, 16)
>
>      def is_standard(self):
>          return self.terran.value <= self.value <= self.minimal.value
>
>      def is_hostile(self):
>          return self.barren.value <= self.value
>
>      @property
>      def growth_factor(self):
>          if self.is_standard():
>              return 1.0
>          elif self.is_hostile():
>              return 0.5
>          elif self is self.fertile:
>              return 1.5
>          elif self is self.gaia:
>              return 2.0
>          else:
>              raise AttributeError("Unknown growth_factor for %s" % self)

--
~Ethan~



More information about the Python-list mailing list