A collection of Python projects and exercises demonstrating the core principles of Object-Oriented Programming (OOP). This repository contains solutions to practical coding challenges covering classes, encapsulation, inheritance, polymorphism, abstraction, and clean code principles.
The projects were completed as part of my journey toward becoming a Backend Engineer, with an emphasis on writing modular, maintainable, and reusable Python code.
- Classes and Objects
- Constructors (
__init__) - Instance and Class Variables
- Encapsulation
- Abstraction
- Inheritance
- Polymorphism
- Composition
- Method Overriding
- Operator Overloading
- Custom Exceptions
- Code Organization
- Clean Code Principles
object_oriented_programming/
├── abstraction/
├── classes/
├── clean_code/
├── encapsulation/
├── inheritance/
├── polymorphism/
├── LICENSE
└── README.md
Each directory contains independent exercises and examples focused on a specific OOP concept.
This repository demonstrates practical understanding of:
- Designing reusable classes
- Applying inheritance to reduce code duplication
- Protecting object state through encapsulation
- Building flexible systems with polymorphism
- Using abstraction to simplify interfaces
- Writing maintainable, readable Python code
- Following object-oriented design principles
- Python 3
- Object-Oriented Programming
- Git
- GitHub
Clone the repository:
git clone https://github.com/ikwukao/object_oriented_programming.gitNavigate into the project:
cd object_oriented_programmingBrowse to any topic directory and run the desired exercise:
cd inheritance
python3 main.pySome exercises are designed for online learning platforms and may not include standalone executable programs.
Introduction to defining classes, creating objects, constructors, attributes, and instance methods.
Examples demonstrating data hiding, private attributes, getter methods, and controlled access to object state.
Projects illustrating parent-child relationships, constructor chaining with super(), and code reuse.
Exercises showing method overriding, dynamic behavior, and interchangeable object interfaces.
Implementations using abstract base classes and shared interfaces to hide implementation details.
Examples focused on writing readable, maintainable, and well-structured Python code following common software engineering practices.
- Object-Oriented Design
- Software Architecture Fundamentals
- Problem Solving
- Python Programming
- Code Reusability
- Modular Development
- Method Overriding
- Operator Overloading
- Exception Handling
This repository serves as both a learning resource and a portfolio of Python Object-Oriented Programming exercises. It documents my progress in mastering OOP concepts that form the foundation of modern backend development.
Potential additions include:
- Design Patterns (Factory, Strategy, Observer)
- SOLID Principles
- Unit Testing with
pytest - UML Class Diagrams
- Type Hint Enhancements
- Python Dataclasses
- Mixins and Multiple Inheritance
- Real-world OOP Projects
Suggestions, improvements, and discussions are welcome. Feel free to open an issue or submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.
Ikwuka Okoye
Backend Engineer (Python & Go)
- GitHub: https://github.com/ikwukao
Always learning, always building.