Hi there. I welcome you to this course on Object Oriented Programming in Python. My name is Lakshay Arora, and I work as a System Analyst at Amdocs. This course will take you through the basics of the Object Oriented Python. Object Oriented Programming is one of the most widely used approaches to programming. It is built around two key concepts: classes and instances. A class defines a template or a blueprint for a type of entity in the given scenario. This blueprint is in the form of attributes and associated functionalities. A class spawns one or more objects, called instances. These instances store data in the defined attributes, and call associated functionality in the form of special functions called methods. We will study how this style of programming is built on principles of Inheritance, Encapsulation and Polymorphism. These terms may not make much sense to you right now, especially if you are new to Object Oriented Programming, but they are critical to this style of programming, and you'll know them by the end of this course.
This is how the course is structured:
- Preliminaries: Introduction to Object Oriented Programming (OOP) in Python, about the instructor, about OOP, comparison between Procedure Oriented Programming (POP) & OOP, prerequisites to follow along the course.
- Building Blocks of Object Oriented Programming in Python: Classes, instances, instance methods, class methods, instance attributes, class attributes, encapsulation, __init__() and __str__(), handling class and instance data, building a counter as chapter exercise.
- Inheritance and Polymorphism: Inheritance, new style classes, super(), multiple inheritance, polymorphism, abstract classes, method overloading, implementing Chain of Responsibility design pattern as chapter exercise.
- Intermediate Object Oriented Programming in Python: Implicit method calls behind syntaxes, operator overloading, special attribute functions, customizing builtin data types, enforcing encapsulation, naming convention of variables/attributes, behind the scenes of the with keyword, @classmethod & @staticmethod decorators, storing keyword arguments dynamically, creating random objects of subclasses of a superclass, popular programming practices, changing default index behavior of Python lists as chapter exercise.
In order to make the most of this course on Object Oriented Programming in Python, it is advised that you are familiar with the basics of Python. If you are not, here's a link to Python 101.
If you are already familiar with the basics of Python, this is the next logical step in knowing more about the language as well as in enhancing your knowledge of programming. The concepts you will learn throughout this course are applicable in other languages as well, such as C++, PHP and Java. So get started!