This document outlines an introduction to object oriented programming in Python. It discusses Python's support for multiple programming paradigms including procedural, object-oriented, and functional. Python allows programmers to choose the paradigm best suited to the problem. The document then covers Python classes, stating that a class is a Python object that returns a new instance when called. Classes contain attributes that can be descriptors like functions or normal data. Inheritance allows classes to delegate attribute lookup to parent classes.