To create an abstract class named Shape with an abstract method calculate_area, and implement this method in two subclasses: Rectangle and Circle.
-
Import ABC module:
- Use
from abc import ABC, abstractmethodto define abstract classes and methods.
- Use
-
Create Abstract Class
Shape:- Define an abstract method
calculate_area()with@abstractmethod.
- Define an abstract method
-
Create Subclass
Rectangle:- Set default values for
lengthandbreadth. - Override
calculate_area()to compute the rectangle area.
- Set default values for
-
Create Subclass
Circle:- Set default value for
radius. - Override
calculate_area()to compute the circle area.
- Set default value for
-
Create Objects & Call Methods:
- Instantiate
RectangleandCircle. - Call their
calculate_area()methods.
- Instantiate
from abc import ABC, abstractmethod import math
class Shape(ABC): @abstractmethod def calculate_area(self): pass
class Rectangle(Shape): def init(self, length=5, breadth=3): self.length = length self.breadth = breadth
def calculate_area(self):
area = self.length * self.breadth
print(f"Rectangle Area: {area}")
return area
class Circle(Shape): def init(self, radius=4): self.radius = radius
def calculate_area(self):
area = math.pi * self.radius ** 2
print(f"Circle Area: {area:.2f}")
return area
rect = Rectangle() rect.calculate_area()
circle = Circle() circle.calculate_area()
Thus an abstract class named Shape with an abstract method calculate_area, and implement this method in two subclasses: Rectangle and Circleis successful.
To implement Encapsulation in Python by defining a class Rectangle with private member variables __length and __breadth.
-
Define the Class:
- Create a class
Rectanglewith two private attributes:__lengthand__breadth.
- Create a class
-
Initialize Variables:
- Use the
__init__()constructor to set initial values for__lengthand__breadth.
- Use the
-
Print Values:
- Display the private variables from within the class to demonstrate access.
-
Instantiate the Object:
- Create an object of the
Rectangleclass to trigger the constructor.
- Create an object of the
class Rectangle:
def __init__(self, length=5, breadth=3):
self.__length = length
self.__breadth = breadth
print(f"Rectangle Length: {self.__length}")
print(f"Rectangle Breadth: {self.__breadth}")
rect = Rectangle()
Thus the python program is executed successfully.
To write a Python program that demonstrates class inheritance by creating a parent class Fish with a method type, and a child class Shark that overrides the type method.
- Define the
Fishclass with a method namedtype()that prints"fish". - Define the
Sharkclass as a subclass ofFish, and override thetype()method to print"shark". - Create an instance of the
Fishclass namedobj_goldfish. - Create an instance of the
Sharkclass namedobj_hammerhead. - Use a
forloop to iterate over both objects. - Within the loop, call the
type()method using the loop variable. - Output will demonstrate method overriding: printing
"fish"and"shark"accordingly.
class Fish: def type(self): print("fish")
class Shark(Fish): def type(self): print("shark")
obj_goldfish = Fish()
obj_hammerhead = Shark()
for obj in [obj_goldfish, obj_hammerhead]:
obj.type()
Thus the code is executes successfully.
To write a Python program that demonstrates operator overloading by overloading the less than (<) operator using a custom class.
-
Create Class
A:- Define the
__init__()method to initialize the object with a valuea.
- Define the
-
Overload the
<Operator:- Define the
__lt__()method with logic:- If
self.a < o.a, return"ob1 is less than ob2" - Else, return
"ob2 is less than ob1"
- If
- Define the
-
Create Objects:
- Instantiate two objects
ob1andob2with values.
- Instantiate two objects
-
Use
<Operator:- Use
print(ob1 < ob2)to trigger the overloaded behavior.
- Use
class A: def init(self, a): self.a = a
def __lt__(self, o):
if self.a < o.a:
return "ob1 is less than ob2"
else:
return "ob2 is less than ob1"
ob1 = A(10) ob2 = A(20)
print(ob1 < ob2)
Thus the result is executed successfully with any error.
To create two specific classes β Beans and Mango. Then, create a generic function that can accept any object and determine its type (Fruit or Vegetable) and color, using polymorphism.
-
Create Class
Beans:- Define
type()method that prints"Vegetable". - Define
color()method that prints"Green".
- Define
-
Create Class
Mango:- Define
type()method that prints"Fruit". - Define
color()method that prints"Yellow".
- Define
-
Define Generic Function
func(obj):- Call
obj.type()andobj.color()β this works with bothBeansandMangoobjects, showcasing polymorphism.
- Call
-
Create Objects:
- Instantiate
BeansandMango. - Pass them to
func()and execute the program.
- Instantiate
class Beans: def type(self): print("Vegetable")
def color(self):
print("Green")
class Mango: def type(self): print("Fruit")
def color(self):
print("Yellow")
def func(obj): obj.type() obj.color()
b = Beans() m = Mango()
func(b) func(m)
Thus the output is verified successfully.