Stef Mientki wrote: > hello, > > I had a program that worked perfectly well. > In this program modules were dynamically added, > just by putting the file in a predefined directory. > > Now one of the interface mechanisms was to see if some parameter was > changed in a an instance, > by comparing the value from the instance with its previous value > > This went all well, untill I added a too complex variable, > then the program stopped working, without generating exceptions. > > So it seems that comparing a too complex value isn't allowed. > the variable was something like: > > A = [ <ndarray>, <ndarray>, ..., [<color>,<color>,...], [<float>, > <float>, ... ] ] > > So what I need was something like: > if A != A_prev : > ... do something > A_prev = A > > And this crashes, or at least it doesn't work but also doesn't generate > exceptions. > It does seems to work, if A only contains 1 array. > > Why am I not allowed to compare A and A_prev ?? > And in general, how complex might a list be to make a valid comparison, > or what are the rules ?
Remember that numpy arrays use rich comparisons. (ndarray1 != ndarray2) gives another array, not a boolean value. The resulting array cannot be used in an "if" clause. -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco -- http://mail.python.org/mailman/listinfo/python-list