Python Decorators - 2 - Hands On
Python / Python Classes and Objects
1071
2. Decorators - 2
1. Decorate the average function with the log decorator as shown in the following code.
2. Execute and verify if the log decorator is able to write the log to STDOUT.
@log
def average (n1,n2, n3): return (n1+n2+n3)/3
3. Use the Test against custom input box to output the result for debugging.
4. Provide integer/float values (refer test case samples) to display the output/error.
Given Input:
3,8,16
Expected Output:
Accessed the function -'average' with arguments (3.0, 8.0, 16.0) {}
9.0
Program:
#!/bin/python3
import sys
import os
def log(func):
def inner(*args, **kwdargs):
str_template = "Accessed the function -'{}' with arguments {} {}".format(func.__name__,
args,
kwdargs)
return str_template + "\n" + str(func(*args, **kwdargs))
return inner
#Add greet function definition here
@log
def average(n1,n2,n3):
return (n1+n2+n3)/3
'''Check the Tail section for input/output'''
if __name__ == "__main__":
with open(os.environ['OUTPUT_PATH'], 'w') as fout:
res_lst = list()
(a,b,c) = (map(lambda x: float(x.strip()), input().split(',')))
res_lst.append(average(a,b,c))
fout.write("{}".format(*res_lst))
Output:
Accessed the function -'average' with arguments (8.0, 2.4, 4.6) {}
5.0
This Particular section is dedicated to Programs only. If you want learn more about Python. Then you can visit below links to get more depth on this subject.
# C Tutorials
# JAVA Tutorials
# HTML Tutorials
# Computer Fundamental
# Data Structure
# DBMS Tutorials
SQL
# C# Language
# R Language
# PHP
# Python
# Vue JS
Accessed the function -'average' with arguments (3.0, 8.0, 16.0) {} 9.0
Program:
#!/bin/python3 import sys import os def log(func): def inner(*args, **kwdargs): str_template = "Accessed the function -'{}' with arguments {} {}".format(func.__name__, args, kwdargs) return str_template + "\n" + str(func(*args, **kwdargs)) return inner #Add greet function definition here @log def average(n1,n2,n3): return (n1+n2+n3)/3 '''Check the Tail section for input/output''' if __name__ == "__main__": with open(os.environ['OUTPUT_PATH'], 'w') as fout: res_lst = list() (a,b,c) = (map(lambda x: float(x.strip()), input().split(','))) res_lst.append(average(a,b,c)) fout.write("{}".format(*res_lst))
Output:
Accessed the function -'average' with arguments (8.0, 2.4, 4.6) {} 5.0
This Particular section is dedicated to Programs only. If you want learn more about Python. Then you can visit below links to get more depth on this subject.
# C Tutorials
# JAVA Tutorials
# HTML Tutorials
# Computer Fundamental
# Data Structure
# DBMS Tutorials
SQL
# C# Language
# R Language
# PHP
# Python
# Vue JS