/OOP-in-Python-UET

Object Oriented Programming In Python (oop in python)

Primary LanguagePythonMIT LicenseMIT

OOP in Python - Object-Oriented Programming Concepts

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:

Lessons Overview

  1. Lesson-01 - Introduction of Object-Oriented Programming

    • Provides a foundational understanding of OOP concepts and its importance in Python.
  2. Lesson-02 - Creating Our First Class

    • Guides you through the creation of your first class, setting the stage for object-oriented design.
  3. Lesson-03 - Class Level Attributes

    • Explores class-level attributes and their significance in Python classes.
  4. Lesson-04 - Attribute __dict__

    • Dives into the attribute __dict__ and how it facilitates attribute management within classes.
  5. Lesson-05 - Task 1 & 2

    • Challenges you with tasks to reinforce your understanding of OOP principles.
  6. Lesson-06 - __str__ and __repr__

    • Covers the __str__ and __repr__ methods, essential for string representation of objects.
  7. Lesson-07 - Class Method & Static Method

    • Introduces class methods and static methods, expanding your understanding of class behavior.
  8. Lesson-08 - Accessing other class object in method

    • Demonstrates how to access objects from within other class methods.
  9. Lesson-09 - Data Encapsulation

    • Explores the concept of data encapsulation and its role in OOP design.
  10. Lesson-10 - Getters, Setters & Deleters

    • Covers getters, setters, and deleters, vital for controlled access to class attributes.
  11. Lesson-10 (Supp) - Naming Conventions for Getters and Setters

    • Provides supplementary information on naming conventions for getters and setters.
  12. Lesson-11 - Polymorphism & Magic Methods

    • Explains polymorphism and delves into the magic methods that enable powerful class behaviors.
  13. Lesson-12 - More Magic Methods

    • Explores additional magic methods, expanding your toolkit for advanced class functionalities.
  14. Lesson-13 - NotImplemented & Reflection Function

    • Discusses the NotImplemented keyword and reflection functions in Python.
  15. Lesson-14 - Task 3 & 4

    • Presents challenging tasks to test your skills in OOP.
  16. Lesson-15 - Multiple Classes

    • Introduces multiple classes and their interactions, a fundamental aspect of complex software systems.
  17. Lesson-16 - Enumeration Class

    • Explores enumeration classes and their utility in Python programming.
  18. Lesson-17 - Multiple Classes Finalized

    • Finalizes the understanding of multiple classes, ensuring a strong grasp of the concept.
  19. Lesson-18 - Multiple Classes Demo (CSV Files)

    • Provides a practical demonstration of multiple classes using CSV files.
  20. Lesson-19 - Challenge-I (Area and Perimeter of Polygon)

    • Challenges you to apply your knowledge in a real-world scenario.
  21. Lesson-20 - Challenge-II (Area and Perimeter of Any Polygon)

    • Presents a more advanced challenge to test your problem-solving skills.
  22. 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.
  23. Lesson-21 - Class Inheritance or Subclasses

    • Introduces class inheritance and subclassing, a key feature of object-oriented programming.
  24. Lesson-22 - Method Resolution Order & super() function

    • Explores method resolution order and the super() function, crucial for inheritance-related complexities.
  25. Lesson-23 - Multi-Level Class Inheritance

    • Discusses multi-level class inheritance, adding depth to your understanding of class hierarchies.
  26. Lesson-24 - Multiple Inheritance

    • Delves into multiple inheritance, a powerful yet complex feature of Python classes.
  27. Lesson-25 - Multiple Inheritance (Part-02)

    • Continues the exploration of multiple inheritance, covering advanced scenarios and best practices.
  28. Lesson-26 - Class Inheritance Example

    • Provides a practical example of class inheritance, demonstrating real-world applications.
  29. Lesson-27 - Composition and Inheritance

    • Contrasts composition and inheritance, helping you choose the right approach for your projects.
  30. Lesson-28 - Abstract Class

    • Introduces abstract classes, promoting design patterns and code structure.

How to Use This Repository

  • 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.

Contributing

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! 🚀