Python is an object oriented programming language. Almost everything in Python is an object, with its properties and methods.
Class:
To create a class, use the keyword class:
class MyClass:
x = 5
The __init__() Function
All classes have a function called __init__(), which is always executed when the class is being initiated. Use the __init__() function to assign values to object properties, or other operations that are necessary to do when the object is being created
Python Inheritance:
Inheritance allows us to define a class that inherits all the methods and properties from another class.
Parent class is the class being inherited from, also called base class.
Child class is the class that inherits from another class, also called derived class.
Python Polymorphism:
The word "polymorphism" means "many forms", and in programming it refers to methods/functions/operators with the same name that can be executed on many objects or classes.
Types of Polymorphism:
1. Compile-time Polymorphism : It is also known as static polymorphism. This type of polymorphism is achieved by function overloading or operator overloading.
2. Runtime Polymorphism : the compiler resolves the object at run time and then it decides which function call should be associated with that object. It is also known as dynamic or late binding polymorphism. This type of polymorphism is executed through virtual functions and function overriding
Example:
Abstraction: Abstraction is the process of hiding the implementation details and show only the functionality to the user
Encapsulation: Puts restrictions on accessing variables and methods directly and can prevent the accidental modification of data.
Dependency Injection (DI) in Python:
Dependency Injection is a design pattern where an object receives its dependencies instead of creating them. This makes code more modular, testable, and flexible.
Example Without DI (Tightly Coupled)
đ´ Problem: UserService is tightly coupled with EmailService, making testing and modification difficult.
Example With DI (Loosely Coupled):
â Benefits of Dependency Injection:
- Loose coupling (easier to replace dependencies).
- Easier unit testing (can mock dependencies).
- More flexible (swap dependencies without changing code).
Comments
Post a Comment