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

Reply via email to