[Python-Dev] redefining is (original) (raw)
Jewett, Jim J jim.jewett at eds.com
Thu Mar 18 10:23:07 EST 2004
- Previous message: [Python-Dev] received your email
- Next message: [Python-Dev] redefining is
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Andrew Koenig:
The observation is that if an object is immutable, there's no legitimate reason to know whether it's distinct from another object with the same type and value.
There is an idiom (I've seen it more in Lisp than in python) of creating a fresh object to act as a sentinel.
"done with this data" might well appear in the input, but the specific newly-created-string (which happens to look just like that) can't appear.
The sentinal is usually a mutable object, but it is sometimes a string indicating the object's meaning. ("fail") It is surprising that some objects (like small integers) cannot be used, but I don't think the answer is to make the entire idiom unusable.
You could argue that they ought to be using (id(x) == id(y)) to emphasize that == isn't enough, but ... (x is y) seems just as clear, and the reference manual (5.9) says that is tests for object identity.
-jJ
- Previous message: [Python-Dev] received your email
- Next message: [Python-Dev] redefining is
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]