I've spent the past year working in Java, where I used assert
to ensure that parameters passed into a method fulfilled certain preconditions. I'd like to do the same in Python, but I read here that exceptions are better to use than assert.
This is what I have currently:
if type(x) == List:
x = np.array(x)
else:
err = ("object passed for x is not a numpy.ndarray or a list")
assert type(x) is np.ndarray, err
err = ("object passed for n is not an integer")
assert type(n) is IntType, err
err = ("the size of the object passed for x does not equal "
"n squared")
assert x.size is n**2, err
Is there a more elegant and/or Pythonic way to approach this? Should I be writing my own exception class to raise when invalid parameters are passed?