![](https://secure.gravatar.com/avatar/5f88830d19f9c83e2ddfd913496c5025.jpg?s=120&d=mm&r=g)
29 Oct
2018
29 Oct
'18
10:54 p.m.
On Mon, Oct 29, 2018 at 4:31 PM Chris Barker <chris.barker@noaa.gov> wrote:
On Fri, Oct 26, 2018 at 7:12 PM, Travis Oliphant <teoliphant@gmail.com> wrote:
agree that we can stop bashing subclasses in general. The problem with numpy subclasses is that they were made without adherence to SOLID: https://en.wikipedia.org/wiki/SOLID. In particular the Liskov substitution principle: https://en.wikipedia.org/wiki/Liskov_substitution_principle .
...
did not properly apply them in creating np.matrix which clearly violates the substitution principle.
So -- could a matrix subclass be made "properly"? or is that an example of something that should not have been a subclass?
The latter - changing the behavior of multiplication breaks the principle. Ralf