On Fri, 28 Feb 2014 09:43:58 +0200, Marko Rauhamaa wrote: > Chris Angelico <ros...@gmail.com>: > >> Simple rule of thumb: Never use 'is' with strings or ints. They're >> immutable, their identities should be their values. Playing with 'is' >> will only confuse you, unless you're specifically going for >> introspection and such. > > Here's a use case for "is" with strings (or ints):
I don't think this is a use-case for "is". See below. > class Connection: > IDLE = "IDLE" [...] > CONNECTED = "CONNECTED" [...] > def disconnect(self): > ... > if self.state is CONNECTED: > ... Why do you care that the state is *that specific* string, rather than any old string with the value "CONNECTED"? Unless you can explain a good reason why, say, *this* instance "CONNECTED" should fail the test, while *that* instance with the same value passes, it's not a good use-case for "is". -- Steven -- https://mail.python.org/mailman/listinfo/python-list