Enum class with ToString functionality

Bruno Desthuilliers bdesth.quelquechose at free.quelquepart.fr
Sat Sep 8 12:52:20 EDT 2007


TheFlyingDutchman a écrit :
> On Sep 10, 2:28 am, bg... at yahoo.com wrote:
> 
>>Hi,
>>
>>I have the following class -
>>
>>class TestOutcomes:
>>    PASSED = 0
>>    FAILED = 1
>>    ABORTED = 2
>>
>>plus the following code -
>>
>>testResult = TestOutcomes.PASSED
>>
>>testResultAsString
>>if  testResult == TestOutcomes.PASSED:
>>    testResultAsString = "Passed"
>>elif testResult == TestOutcomes.FAILED :
>>    testResultAsString = "Failed"
>>else:
>>    testResultAsString = "Aborted"
>>
>>But it would be much nicer if I had a function to covert to string as
>>part of the TestOutcomes class. How would I implement this?
>>
>>Thanks,
>>
>>Barry
> 
> 
> class TestOutcomes:
>     PASSED = 0
>     FAILED = 1
>     ABORTED = 2
> 
>     def ToString(outcome):
>         if  outcome == TestOutcomes.PASSED:
>            return "Passed"
>         elif outcome == TestOutcomes.FAILED :
>            return "Failed"
>         else:
>            return "Aborted"
> 
>     ToString = staticmethod(ToString)
> 
> if __name__ == "__main__":
>     testResult = TestOutcomes.PASSED
>     testResultAsString = TestOutcomes.ToString(testResult)
>     print testResultAsString
>     print TestOutcomes.ToString(testResult)
> 

Technically correct, but totally unpythonic.

May I suggest some reading ?
http://dirtsimple.org/2004/12/python-is-not-java.html



More information about the Python-list mailing list