From: <no...@so...> - 2002-01-05 12:41:24
|
Bugs item #222789, was opened at 2000-11-18 10:46 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=222789&group_id=12867 Category: Core Group: None Status: Open Resolution: None Priority: 1 Submitted By: Finn Bock (bckfnn) >Assigned to: Samuele Pedroni (pedronis) Summary: __builtin__.id() does not return unique values for different Initial Comment: According to the Python library documentation, the "id" builtin function will return unique integers for different objects. The documentation for java's hashCode makes no such garantee. The new hotspot VM change the behavior of the JDK and the hashCode (and identifyHashCode) function can return the same integer for different objects. pickle.py assumes that id() returns unique values. ======= From Python docs "__builtin__.id()"========= Return the `identity' of an object. This is an integer which is guaranteed to be unique and constant for this object during its lifetime. ======= From Java docs "Object.hashCode()" ========= As much as is reasonably practical, the hashCode method defined by class Object does return distinct integers for distinct objects. (This is typically implemented by converting the internal address of the object into an integer, but this implementation technique is not required by the JavaTM programming language.) --------- FILE: test099.py --------- d = {} for i in xrange(100000): s = "test" + `i` j = id(s) if d.has_key(j): print "Duplicate id %s<%d> & %s<%d>" % (s, j, d[j], id(d[j])) d[j] = s --------- END --------- ---------------------------------------------------------------------- Comment By: Finn Bock (bckfnn) Date: 2000-11-26 05:07 Message: Tim Peters think this should be solved even if it mean that every object should carry some id field around in PyObject. I think we can live with this difference. Since I trust Tim more then I trust myself I keep the bug open for now. See the python-dev archives for the discussion. http://www.python.org/pipermail/python-dev/2000-June/thread.html#22346 ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=222789&group_id=12867 |