On Tuesday, May 26, 2015 at 3:53:25 PM UTC-5, Michael Torrie wrote:
> On 05/26/2015 08:57 AM, zipher wrote:
> > Comprende?  I'm not trying to be cryptic here.  This is a bit of OOP
> > theory to be discussed.
> 
> No, sorry.  Maybe an actual example (with use case) would spur discussion.

In the first example, super_dict changes the behavior of <dict> *for the user*, 
expanding the API, but keeping all the prior method behaviors the same.  

In the second example, specialized_dict changes the behavior in the machine -- 
the API stays the same so the user of the code just gets new benefits from 
whatever the specialized_dict is improving internally *without changing his/her 
code*.  It's a drop-in replacement.

In other words, the second class changes the INTERNALS of <dict>.  While the 
first class changes the *externals* of <dict>.  Yet they both use the same 
class definition, but semantically are completely different.  It's TWO 
different definition of IS-A relationship.  Two definitions of the word "is".

m
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to