at what complexity, a comparison fails ?
Robert Kern
robert.kern at gmail.com
Mon Dec 31 13:19:18 EST 2007
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
More information about the Python-list
mailing list