Разбирался в особенностях декоратора и столкнулся со странной проблемой
Вот мой код:
def decor(x):
def wrap():
try:
x()
except:
return ('error')
return wrap
@decor
def f():
a=5
return (a)
@decor
def F():
a=open('251.txt')
w=a.read()
return (w)
print(f())
print(F())
Вот что он выдает:
None
error
А хочу я чтобы он выдавал это:
5
error
Потом переделал код и он сработал как надо:
def decor(x):
def wrap():
try:
x()
except:
print('error')
return wrap
@decor
def f():
a=5
print(a)
@decor
def F():
a=open('251.txt')
w=a.read()
print(w)
f()
F()
Помогите пожалуйста понять в чём ошибка первого кода
Источник: Stack Overflow на русском