What is the output of the following code? def smart_divide(func): def wrapper(*args): a, b = args if b == 0: print('oops! cannot divide') return return func(*args) return wrapper @smart_divide def divide(a, b): return a / b print(divide.__name__) print(divide(4, 16)) print(divide(8,0))
What is the output of the following code?
def smart_divide(func):
def wrapper(*args):
a, b = args
if b == 0:
print('oops! cannot divide')
return
return func(*args)
return wrapper
@smart_divide
def divide(a, b):
return a / b
print(divide.__name__)
print(divide(4, 16))
print(divide(8,0))
a. smart_divide
0.25
oops! cannot divide
b. wrapper
0.25
oops! cannot divide
c. smart_divide
0.25
oops! cannot divide
None
d. wrapper
0.25
oops! cannot divide
None