Robert Kern wrote: > 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. > > thanks guys, I'm glad that Python behaves as expected and can compare complex structures ;-) Robert you hit the nail right on its head, indeed I should be quit carefully with numpy arrays.
cheers, Stef Mientki -- http://mail.python.org/mailman/listinfo/python-list