<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Oct 26, 2018 at 7:12 PM, Travis Oliphant <span dir="ltr"><<a href="mailto:teoliphant@gmail.com" target="_blank">teoliphant@gmail.com</a>></span> wrote:<br><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div class="gmail_quote"><div> agree that we can stop bashing subclasses in general.   The problem with numpy subclasses is that they were made without adherence to SOLID:  <a href="https://en.wikipedia.org/wiki/SOLID" target="_blank">https://en.wikipedia.<wbr>org/wiki/SOLID</a>.  In particular the Liskov substitution principle:  <a href="https://en.wikipedia.org/wiki/Liskov_substitution_principle" target="_blank">https://en.wikipedia.org/wiki/<wbr>Liskov_substitution_principle</a> . </div></div></div></div></div></blockquote><div><br></div><div>...</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div class="gmail_quote"><div> did not properly apply them in creating np.matrix which clearly violates the substitution principle. </div></div></div></div></div></blockquote><div><br></div><div>So -- could a matrix subclass be made "properly"? or is that an example of something that should not have been a subclass?</div><div><br></div><div>-CHB</div><div><br></div><div><br></div></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><br>Christopher Barker, Ph.D.<br>Oceanographer<br><br>Emergency Response Division<br>NOAA/NOS/OR&R            (206) 526-6959   voice<br>7600 Sand Point Way NE   (206) 526-6329   fax<br>Seattle, WA  98115       (206) 526-6317   main reception<br><br><a href="mailto:Chris.Barker@noaa.gov" target="_blank">Chris.Barker@noaa.gov</a></div>
</div></div>