# defining a decorator
def hello_decorator(func):
# inner1 is a Wrapper function in
# which the argument is called
# inner function can access the outer local
# functions like in this case "func"
def inner1():
print("Hello, this is before function execution")
# calling the actual function now
# inside the wrapper function.
func()
print("This is after function execution")
return inner1
# defining a function, to be called inside wrapper
def function_to_be_used():
print("This is inside the function !!")
def uppercase(func):
def upper_wrapper():
original_result = func()
modified_result = original_result.upper()
print(modified_result)
return upper_wrapper
def title(func):
def title_wrapper():
original_result = func()
modified_result = original_result.title()
print(modified_result)
return title_wrapper
def swappingcase(func):
def swappingcase_wrapper():
original_result = func()
modified_result = original_result.swapcase()
print(modified_result)
return swappingcase_wrapper
def lowercase(func):
def lower_wrapper():
original_result = func()
modified_result = original_result.lower()
print(modified_result)
return lower_wrapper
def replace(func):
def replace_wrapper():
original_result = func()
modified_result = original_result.replace(original_result, 'Goodbye')
print(modified_result)
return replace_wrapper
@uppercase
def greet_upper():
print("Hello change to uppercase")
return 'Hello'
@lowercase
def greet_lower():
print('Hello change to lowercase')
return 'Hello'
@replace
def greet_replace():
print('Hello replace with Goodbye')
return 'Hello'
@title
def greet_title():
print('hello and goodbye replaced with title caps')
return 'hello and goodbye replaced with title caps'
@swappingcase
def greet_swappingcase():
print('hElLo aNd gOoDbYe RePlACeD wItH sWaPcAsE')
return 'hElLo aNd gOoDbYe RePlACeD wItH sWaPcAsE'
function_to_be_used = hello_decorator(function_to_be_used)
function_to_be_used()
print("\n")
decorated_greet_upper = uppercase(greet_upper)
greet_upper()
print("\n")
decorated_greet_lower = lowercase(greet_lower)
greet_lower()
print("\n")
decorated_greet_replace = replace(greet_replace)
greet_replace()
print("\n")
decorated_greet_title = title(greet_title)
greet_title()
print("\n")
decorated_greet_swappingcase = swappingcase(greet_swappingcase)
greet_swappingcase()
Hello, this is before function execution This is inside the function !! This is after function execution Hello change to uppercase HELLO Hello change to lowercase hello Hello replace with Goodbye Goodbye hello and goodbye replaced with title caps Hello And Goodbye Replaced With Title Caps hElLo aNd gOoDbYe RePlACeD wItH sWaPcAsE HeLlO AnD GoOdByE rEpLacEd WiTh SwApCaSe