> > 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. > Here is a real life example where "is" on immutable objects is very helpful for perfomance reasons I have DatabaseRecord objects which have a field "schema": (which comes from Database objects) schema is just a string with textual description of database schema and this string might be quite long (like 500-700 bytes) given 2 databaserecord objects I want to be able to quickly say whether they have the same schema..(with time cost being independent on number of field, record size, etc) It's easy to achieve with is, I just intern schemas: database.schema=intern(schema) dbRec1.schema=database.schema dbRec2.schema=database.schame (Essentially, intern() is done once per database open() operation) then comparing 2 schemas is much quicker done with "is" (dbRec1.schema is dbRec3.schema) than with either id() or "==" Or am I missing something here? Ilya PS and just for reference some timings: src>./python Lib/timeit.py -n 10000 -s 'l=500; x="1" * l; y="1"* l' 'x is y' 10000 loops, best of 3: 0.143 usec per loop src>./python Lib/timeit.py -n 10000 -s 'l=500; x="1" * l; y="1"* l' 'x == y' 10000 loops, best of 3: 0.932 usec per loop src>./python Lib/timeit.py -n 10000 -s 'l=500; x="1" * l; y="1"* l' 'id(x) == id(y)' 10000 loops, best of 3: 0.482 usec per loop s > Unsubscribe: http://mail.python.org/mailman/options/python-dev/ilya%40bluefir.net >
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4