This document is a lecture on Object-Oriented Programming (OOP) using Python, covering key concepts such as inheritance, polymorphism, encapsulation, and abstraction. It explains the differences between object-oriented and procedural programming, outlines various OOP methodologies, and provides example code for each concept, including single, multilevel, hierarchical, and multiple inheritance, as well as details on compile-time and run-time polymorphism. The lecture concludes with an emphasis on the importance of practice in mastering these concepts.