mihai <[EMAIL PROTECTED]> wrote: > > This is the code: > > begin = select_point() > if begin == None: > return > > end = select_point() > while end != None: > record = Record(begin, end) > id = add(record) > begin = end > end = select_point() > # here (sometimes) begin has the same value (or points to the > same object) like end, the newly selected one > > Is there a way to see if the names points to the same variables or > that there are different variables with the same values?
You can check whether two names refer to the same object with the 'is' operator. So you would use: if begin is end: continue to skip over any duplicate > > The problem is that the problem is more like an bug, > it happens only in certain conditions, and I have no idea why. > > I have checked the values returned by select_point() and are different > in all the cases, > so the problem is with that variables names/values. Are you sure that nothing you do can change the list of points you are iterating over: usually iteration returning unexpected duplicates is because you inserted something new into the middle of the list. A few other unrelated points: the convention is to use 'is' when checking for None, and you can reduce the number of calls to 'select_point' if you use the 'iter' function. Putting those together: begin = select_point() if begin is None: return for end in iter(select_point, None): if begin is end: continue record = Record(begin, end) id = add(record) begin = end -- http://mail.python.org/mailman/listinfo/python-list