import inspect
def print_func_info(func):
def wrapper(*args,**kwargs):
frame = inspect.currentframe().f_back
filename = inspect.getframeinfo(frame).filename
lineno = inspect.getframeinfo(frame).lineno
print(f"Function '{func.__name__}' called from {filename}, line {lineno}")
return func(*args,**kwargs)
return wrapper
@print_func_info
def my_function():# 函数体
print('lall')
my_function()
python装饰器 打印行号,函数名,文件名
