On 03/01/2014 04:28 AM, Marko Rauhamaa wrote:
> Ben Finney <ben+pyt...@benfinney.id.au>:
> 
>> Use ‘==’, since that's all that matters for getting a value that will
>> work fine.
> 
> You are telling me to use '==' if I choose string objects and 'is' if I
> choose some other objects.

No, '==' works fine no matter what objects you assign to your state
variables.

class Foo(object):
    STATE1 = object()
    STATE2 = "testing"
    STATE3 = 2

    def __init__(self):
        self.state = Foo.STATE1

    def bar(self):
        if self.state == Foo.STATE1:
            pass
        elif self.state == Foo.STATE2:
            pass
        elif self.state == Foo.STATE3:
            pass

> I prefer a solution that works regardless of what objects I choose for
> identifiers.

As shown, '==' does work for this too.  I don't know which is more
correct, but it does work.

-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to