import functools
import inspect
def dec(method):
x= 1
@functools.wraps(method)
def wrapper(*args, **kwargs):
x
return method(*args, **kwargs)
return wrapper
class A:
@dec
def f1(self):
print(is_wrapped())
def is_wrapped():
frame = inspect.currentframe().f_back
caller = frame.f_back
if len(caller.f_locals) > 0:
last_elem = next(reversed(frame.f_back.f_locals.values()))
if hasattr(last_elem, '__code__'):
return last_elem.__code__ is frame.f_code
return False
A().f1()
Click Run or press shift + ENTER to run code