[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