Apparantly it will (in the 'future') not be possible anymore to use the following:
import numpy as np
np.array([0,1,2]) == None
> False
> FutureWarning: comparison to `None` will result in an elementwise object comparison in the future.
This also breaks the lazy loading pattern for numpy arrays:
import numpy as np
def f(a=None):
if a == None:
a = <some default value>
<function body>
What other possibilities allow you to still use lazy initialization?
You are looking for is
:
if a is None:
a = something else
The problem is that, by using the ==
operator, if the input element a
is a numpy array, numpy will try to perform an element wise comparison and tell you that you cannot compare it.
For a
a numpy array, a == None
gives error, np.all(a == None)
doesn't (but does not do what you expect). Instead a is None
will work regardless the data type of a
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With