object.__dict__

object.__dict__
A dictionary or other mapping object used to store an object’s (writable) attributes.

from:
The Python Standard Library » 4. Built-in Types » 4.13. Special Attributes
The implementation adds a few special read-only attributes to several object types, where they are relevant. Some of these are not reported by the dir() built-in function.
https://docs.python.org/3/library/stdtypes.html#object.__dict__

class.__mro__
This attribute is a tuple of classes that are considered when looking for base classes during method resolution.

class.mro()
This method can be overridden by a metaclass to customize the method resolution order for its instances. It is called at class instantiation, and its result is stored in __mro__.
used by:
p. 327
Think Python 2e
©2016
by Allen B. Downey
http://greenteapress.com/wp/think-python-2e

http://stackoverflow.com/questions/56860/what-is-the-liskov-substitution-principle

http://web.archive.org/web/20151128004108/http://www.objectmentor.com/resources/articles/lsp.pdf

Pyton > Inheritance

Python Programming Tutorial – 29 – Classes and Objects  
thenewboston

inheritance can make programs difficult to read. When a method is invoked, it is sometimes not clear where to find its definition. The relevant code may be spread across several modules.
p. 322
Think Python 2e
©2016
by Allen B. Downey
http://greenteapress.com/wp/think-python-2e

Python Programming Tutorial – 30 – init  
thenewboston

Python Programming Tutorial – 31 – Class vs Instance Variables  
thenewboston

Python Programming Tutorial – 32 – Inheritance  
thenewboston

Python Programming Tutorial – 33 – Classes and Self
thenewboston