Control Abstraction in Python¶
Overview¶
Control abstraction refers to the use of functions and other structures to hide complex control flow and allow code to be reused and organized more effectively. Instead of repeating logic, developers encapsulate behavior into callable units.
Functions¶
Functions are the primary mechanism for control abstraction in Python.
Defined using the
defkeywordCan take parameters and return values
Help break programs into modular, reusable pieces
Example:
def greet(name):
return f"Hello, {name}!"
print(greet("Alice"))
Benefits: - Code reuse - Improved readability - Easier debugging and maintenance
Lambda Functions¶
Lambda functions are small, anonymous functions defined using the lambda keyword.
Example:
add = lambda x, y: x + y
print(add(2, 3))
Use cases:
- Short, simple operations
- Often used with functions like map(), filter(), and sorted()
Higher-Order Functions¶
A higher-order function is a function that: - Takes another function as an argument, or - Returns a function as a result
Example:
def apply_function(func, value):
return func(value)
def square(x):
return x * x
print(apply_function(square, 5))
Built-in examples:
- map()
- filter()
- reduce() (from functools)
Closures¶
A closure is a function that remembers values from its enclosing scope even after that scope has finished executing.
Example:
def outer(x):
def inner(y):
return x + y
return inner
add_five = outer(5)
print(add_five(3)) # Output: 8
Decorators¶
Decorators are functions that modify the behavior of other functions without changing their code.
Example:
def my_decorator(func):
def wrapper():
print("Before function call")
func()
print("After function call")
return wrapper
@my_decorator
def say_hello():
print("Hello!")
say_hello()
Summary¶
Control abstraction in Python allows developers to: - Simplify complex logic - Promote code reuse - Improve readability and structure
Key tools include: - Functions - Lambda expressions - Higher-order functions - Closures - Decorators