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