Define the abstraction and use of it.
In : MSc IT Subject : Python ProgrammingDefinition of Abstraction
Abstraction is a fundamental concept in computer science and programming that involves hiding complex implementation details while exposing only the essential features and functionality to the user. It allows programmers to focus on what an object or system does rather than how it accomplishes its tasks.
In simpler terms, abstraction is the process of simplifying complex reality by modeling classes appropriate to the problem domain and working at the most relevant level of detail.
Key Characteristics of Abstraction
Simplification: Reduces complexity by focusing on essential features
Information Hiding: Conceals unnecessary implementation details
Interface Separation: Separates what an object does from how it does it
Modularity: Creates well-defined boundaries between components
Reusability: Enables the creation of generic, reusable components
Types of Abstraction
1. Data Abstraction
Hides the internal representation of data and exposes only the necessary operations.
2. Control Abstraction
Hides the implementation details of control flow and exposes only the interface.
3. Procedural Abstraction
Hides the implementation details of procedures or functions.
Calc Example :
# Without Abstraction - Complex and messy
def calculate():
print("Enter first number:")
num1 = float(input())
print("Enter second number:")
num2 = float(input())
print("Enter operation (+, -, *, /):")
op = input()
if op == '+':
result = num1 + num2
print(f"Result: {result}")
elif op == '-':
result = num1 - num2
print(f"Result: {result}")
elif op == '*':
result = num1 * num2
print(f"Result: {result}")
elif op == '/':
if num2 != 0:
result = num1 / num2
print(f"Result: {result}")
else:
print("Cannot divide by zero!")
# With Abstraction - Simple and clean
class Calculator:
def add(self, a, b):
return a + b
def subtract(self, a, b):
return a - b
def multiply(self, a, b):
return a * b
def divide(self, a, b):
if b != 0:
return a / b
else:
return "Cannot divide by zero!"
# Using the abstraction
calc = Calculator()
result = calc.add(10, 5) # User just needs to know: calc.add(10, 5)
print(result) # 15
result = calc.divide(10, 2) # User doesn't need to know the division logic
print(result) # 5.0