Python doesn't have abstraction it uses inheritance to solve this

There are four principle of OOP:

  1. Inheritance - Creating a new class which is derivative of an existing class
  2. Polymorphism - The ability of a function to change its behaviour when called by different objects
  3. Encapsulation - Limiting access to method and variables by encasing them in a single unit of scope.
  4. Abstraction - Hides implementation details for security

There are many more important concepts in OOP such as:

  1. Method Overloading
  2. Method Overriding
  3. Constructors … So on

Everything in python is an object or derived from object class

Abstract Class

  1. Can have one or more abstract method
  2. Child of Abstract Class: Can only be instantiated if all the abstract method are overridden.

The abstract class can be defined without using a abstractmethod