Skip to content

Hamna-Munir/OOP_In_Python

Repository files navigation

🐍 Object-Oriented Programming (OOP) in Python

A Complete, Structured, and Professional Learning Repository

Developed & Maintained by Hamna Munir


🚀 Master Python OOP from Basics to Advanced — With Real-World Projects

GitHub Python Streamlit Status


📘 About This Repository

This repository is a complete OOP learning roadmap, starting from foundational concepts and progressing into intermediate, advanced, and project-based Python OOP development.

It is designed for:

  • Students learning OOP
  • Developers improving Python skills
  • Job‑seekers preparing for interviews
  • Anyone wanting clean, practical OOP knowledge

The structure is simple, scalable, and beginner-friendly, with each concept explained using real code examples.


📂 Repository Structure

Below is a well‑organized breakdown of all sections:


01 — Functions Recap (Foundation Before OOP)

  • What is a function
  • Arguments, parameters
  • Return values
  • Lambda functions
  • Recursion
  • Nested functions
  • Function vs Method

02 — Introduction to OOP

  • What is OOP
  • Class & object basics
  • The __init__ method
  • Using self
  • Benefits of OOP

03 — Class Attributes & Methods

  • Instance vs class variables
  • Instance, class, and static methods
  • Practical examples
  • Object lifecycle & destructor

04 — Encapsulation

  • Public / Private / Protected
  • Name mangling
  • Getters & setters
  • Encapsulation use cases

05 — Inheritance

  • Types of inheritance
  • Method overriding
  • Multiple & multilevel inheritance
  • Hierarchical inheritance
  • Real-world examples

06 — Modules

  • What is a module
  • Creating & importing modules

07 — Polymorphism

  • Function overloading
  • Operator overloading
  • Polymorphism in inheritance
  • Practical examples

08 — Abstraction

  • What is abstraction
  • Abstract Base Classes (ABC)
  • Interfaces
  • Hiding implementation details

09 — Special / Magic Methods

  • Dunder methods
  • __init__, __str__
  • __len__, __del__
  • Operator overloading
  • Custom class representation

10 — Decorators & Generators

  • What are decorators
  • Function decorators
  • Class decorators
  • Generator functions
  • yield, next()
  • Generator expressions
  • Real-world examples

11 — OOP Project Practice (Mini Projects)

Each project uses OOP + sometimes Streamlit for UI.
Includes:

Bank Account System

  • Deposit, withdraw, balance check

Student Management System

  • Add students, show details, marks

Library Management System (Streamlit + SQLite)

  • Add books
  • Search
  • Update, delete
  • Full UI

Ecommerce Product Class

  • Add products
  • Total price calculation

🎯 Goals of This Repository

✔ Build strong OOP fundamentals
✔ Teach coding using real scenarios
✔ Demonstrate clean, modular design
✔ Help beginners become job-ready
✔ Provide reusable templates for future projects


🛠️ Technologies Used

  • Python 3.x
  • OOP Principles
  • Streamlit (for UI-based projects)
  • SQLite (for database projects)

👩‍💻 Developer

Name: Hamna Munir
📌 Python Developer | AI/ML Learner | OOP Specialist

🔗 GitHub:
https://github.com/Hamna-Munir

🔗 LinkedIn:
https://www.linkedin.com/in/hamna-munir-6891a72a0/


🙌 Contributions

This repository is currently maintained individually,
but suggestions and improvements are always welcome.


Support

If you like this repository, please ⭐ star it on GitHub
It motivates and supports my continuous learning journey!


Made with ❤️ by Hamna Munir

About

A collection of notes, practice code, and projects for learning Object-Oriented Programming (OOP) in Python, featuring beginner-friendly implementations and practice problems.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages