Enum class with ToString functionality

TheFlyingDutchman zzbbaadd at aol.com
Mon Sep 10 07:35:37 EDT 2007


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

The equivalent to Java's toString() is __str__() in Python:

class TestOutcomes:
    PASSED = 0
    FAILED = 1
    ABORTED = 2

    def __init__(self,outcome):
        self.outcome = outcome

    def __str__(self):
        if  self.outcome == TestOutcomes.PASSED:
           return "Passed"
        elif self.outcome == TestOutcomes.FAILED :
           return "Failed"
        else:
           return "Aborted"

if __name__ == "__main__":
    testResult = TestOutcomes(TestOutcomes.ABORTED)
    print testResult
    testResult = TestOutcomes(TestOutcomes.FAILED)
    a = testResult.__str__()
    print a

Aborted
Failed





More information about the Python-list mailing list