Python Dictionaries(advanced)
Table of Contents
Description
Class: A blueprint for creating objects (a collection of attributes and methods).
Object: An instance of a class containing real data.
Interface (Protocol): A way to define behavior contracts. In Python, this is typically done using abstract base classes or protocols (since Python doesn't have explicit interfaces like Java/C#).
Prerequisites
- Functions and data types
- Understanding self and constructors
- OOP Concepts: Encapsulation, Inheritance, Polymorphism (optional but helpful)
Examples
Here's a simple program in Python:
✅ Defining a Class and Creating an Object # Define a class named Person class Person: # Constructor to initialize attributes def __init__(self, name, age): self.name = name self.age = age # Method to display person's info def display(self): print(f"Name: {self.name}, Age: {self.age}") # Create an object (instance) of Person p1 = Person("Alice", 25) p1.display() # Output: Name: Alice, Age: 25 ✅ Using Inheritance # Base class class Animal: def speak(self): print("Animal speaks") # Derived class inheriting from Animal class Dog(Animal): def speak(self): print("Dog barks") # Create object of Dog and call speak() d = Dog() d.speak() # Output: Dog barks ✅ Interface using Abstract Base Class from abc import ABC, abstractmethod # Abstract class as interface class Vehicle(ABC): @abstractmethod def start_engine(self): pass # Concrete class implementing interface class Car(Vehicle): def start_engine(self): print("Car engine started") # Cannot instantiate Vehicle directly # v = Vehicle() # This will raise an error c = Car() c.start_engine() # Output: Car engine started ✅ Interface using Protocol (Python 3.8+) from typing import Protocol # Define a protocol class Flyer(Protocol): def fly(self) -> None: ... # A class implementing the Flyer protocol class Bird: def fly(self): print("Bird is flying") b = Bird() b.fly() # Output: Bird is flyingReal-World Applications
Building software using Object-Oriented Programming
Modeling real-world entities like Bank, Vehicle, User, etc.
Used in frameworks and libraries like Django (Models, Views)
Interfaces are useful in plugin systems, APIs, or dependency injection
Where topic Can Be Applied
Web development (models, services)
Game development (characters, behaviors)
APIs and SDKs (standardizing behavior across components)
Enterprise software: Object modeling and data handling
Machine Learning: Creating reusable model wrappers, pipelines
Resources
WatchTopic video source
A comprehensive video
VisitPython pdf
pdf on topic
Interview Questions
What is the difference between a class and an object?
What is the use of self in Python classes?
How does inheritance work in Python?
What are abstract base classes? How are they used?
Does Python support interfaces like Java?
What is a protocol in Python typing?