﻿ Python Decorator: Validating function arguments for Error-Free execution

# Implementing a Python decorator for argument validation

## Python Decorator: Exercise-5 with Solution

Write a Python program that implements a decorator to validate function arguments based on a given condition.

Sample Solution:

Python Code:

``````def validate_arguments(condition):
def decorator(func):
def wrapper(*args, **kwargs):
if condition(*args, **kwargs):
return func(*args, **kwargs)
else:
raise ValueError("Invalid arguments passed to the function")
return wrapper
return decorator

@validate_arguments(lambda x: x > 0)
def calculate_cube(x):
return x ** 3

print(calculate_cube(5))  # Output: 125
print(calculate_cube(-2))  # Raises ValueError: Invalid arguments passed to the function
``````

Sample Output:

```125
Traceback (most recent call last):
.........
print(calculate_cube(-2))  # Raises ValueError: Invalid arguments passed to the function
........................
raise ValueError("Invalid arguments passed to the function")
ValueError: Invalid arguments passed to the function
```

Explanation:

In the above exercise, the "calculate_cube()" function is decorated with @validate_arguments. The validation condition is specified as a lambda function lambda x: x > 0, which checks if the argument x is greater than 0. When "calculate_cube()" is called with a positive number, it executes normally and returns the square of the input. However, if it's called with a negative number, it raises a ValueError indicating invalid arguments were passed.

Flowchart:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

﻿

Follow us on Facebook and Twitter for latest update.