Welcome to the OOP in Python repository! This repository contains a comprehensive set of lessons and examples focused on Object-Oriented Programming (OOP) in Python. Whether you're a beginner looking to understand the basics or an experienced developer wanting to delve deeper into advanced topics, this repository has you covered. Let's explore what each lesson has to offer:
-
Lesson-01 - Introduction of Object-Oriented Programming
- Provides a foundational understanding of OOP concepts and its importance in Python.
-
Lesson-02 - Creating Our First Class
- Guides you through the creation of your first class, setting the stage for object-oriented design.
-
Lesson-03 - Class Level Attributes
- Explores class-level attributes and their significance in Python classes.
-
Lesson-04 - Attribute
__dict__
- Dives into the attribute
__dict__
and how it facilitates attribute management within classes.
- Dives into the attribute
-
Lesson-05 - Task 1 & 2
- Challenges you with tasks to reinforce your understanding of OOP principles.
-
Lesson-06 -
__str__
and__repr__
- Covers the
__str__
and__repr__
methods, essential for string representation of objects.
- Covers the
-
Lesson-07 - Class Method & Static Method
- Introduces class methods and static methods, expanding your understanding of class behavior.
-
Lesson-08 - Accessing other class object in method
- Demonstrates how to access objects from within other class methods.
-
Lesson-09 - Data Encapsulation
- Explores the concept of data encapsulation and its role in OOP design.
-
Lesson-10 - Getters, Setters & Deleters
- Covers getters, setters, and deleters, vital for controlled access to class attributes.
-
Lesson-10 (Supp) - Naming Conventions for Getters and Setters
- Provides supplementary information on naming conventions for getters and setters.
-
Lesson-11 - Polymorphism & Magic Methods
- Explains polymorphism and delves into the magic methods that enable powerful class behaviors.
-
Lesson-12 - More Magic Methods
- Explores additional magic methods, expanding your toolkit for advanced class functionalities.
-
Lesson-13 -
NotImplemented
& Reflection Function- Discusses the
NotImplemented
keyword and reflection functions in Python.
- Discusses the
-
Lesson-14 - Task 3 & 4
- Presents challenging tasks to test your skills in OOP.
-
Lesson-15 - Multiple Classes
- Introduces multiple classes and their interactions, a fundamental aspect of complex software systems.
-
Lesson-16 - Enumeration Class
- Explores enumeration classes and their utility in Python programming.
-
Lesson-17 - Multiple Classes Finalized
- Finalizes the understanding of multiple classes, ensuring a strong grasp of the concept.
-
Lesson-18 - Multiple Classes Demo (CSV Files)
- Provides a practical demonstration of multiple classes using CSV files.
-
Lesson-19 - Challenge-I (Area and Perimeter of Polygon)
- Challenges you to apply your knowledge in a real-world scenario.
-
Lesson-20 - Challenge-II (Area and Perimeter of Any Polygon)
- Presents a more advanced challenge to test your problem-solving skills.
-
Solution of Challenge-I and II (Type and Area and Perimeter of Any Polygon)
- Offers comprehensive solutions to the challenges, allowing you to compare your approach.
-
Lesson-21 - Class Inheritance or Subclasses
- Introduces class inheritance and subclassing, a key feature of object-oriented programming.
-
Lesson-22 - Method Resolution Order &
super()
function- Explores method resolution order and the
super()
function, crucial for inheritance-related complexities.
- Explores method resolution order and the
-
Lesson-23 - Multi-Level Class Inheritance
- Discusses multi-level class inheritance, adding depth to your understanding of class hierarchies.
-
Lesson-24 - Multiple Inheritance
- Delves into multiple inheritance, a powerful yet complex feature of Python classes.
-
Lesson-25 - Multiple Inheritance (Part-02)
- Continues the exploration of multiple inheritance, covering advanced scenarios and best practices.
-
Lesson-26 - Class Inheritance Example
- Provides a practical example of class inheritance, demonstrating real-world applications.
-
Lesson-27 - Composition and Inheritance
- Contrasts composition and inheritance, helping you choose the right approach for your projects.
-
Lesson-28 - Abstract Class
- Introduces abstract classes, promoting design patterns and code structure.
-
Clone the repository to your local machine:
git clone https://github.com/SyedHasnat/OOP-in-Python-UET.git
-
Navigate to specific lessons or challenges you're interested in.
-
Read the lesson content and explore the provided examples and challenges.
-
Experiment with the code examples to deepen your understanding.
-
Contribute: If you find issues or have improvements, feel free to create pull requests.
Contributions are welcome! If you find issues or have ideas to enhance the lessons, submit a pull request or open an issue. Let's make this resource even better together.
Thank you for being part of the OOP in Python learning journey. Happy coding! 🚀