[Numpy-discussion] Numpy 'None' comparison FutureWarning

Eric Firing efiring at hawaii.edu
Sun Sep 21 17:19:56 EDT 2014


On 2014/09/21, 11:10 AM, Demitri Muna wrote:
> Hi,
>
> I just encountered the following in my code:
>
> FutureWarning: comparison to `None` will result in an elementwise object
> comparison in the future.
>
> I'm very concerned about this. This is a very common programming pattern
> (lazy loading):
>
> class A(object):
>      def __init__(self):
>          self._some_array = None
>
>      @property
>      def some_array(self):
>          if self._some_array == None:
>              # perform some expensive setup of array
>          return self._some_array
>
> It seems to me that the new behavior will break this pattern. I think
> that redefining the "==" operator is a little too aggressive here. It
> strikes me as very nonstandard and not at all obvious to someone reading
> the code that the comparison is a very special case for numpy objects.
> Unless there's some aspect I'm missing here, I think an element-wise
> comparator should be more explicit.


I think what you are missing is that the standard Python idiom for this 
use case is "if self._some_array is None:".  This will continue to work, 
regardless of whether the object being checked is an ndarray or any 
other Python object.

Eric

>
> Cheers,
> Demitri
>
> _________________________________________
> Demitri Muna
>
> Department of Astronomy
> Le Ohio State University
>
> http://trillianverse.org
> http://scicoder.org
>
>
>
>
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>




More information about the NumPy-Discussion mailing list