在c语言中__FILE__, __LINE__, __FUNC__,这三个变量,用得好可以当作一个动态调试器,帮我们定位一些运行时错误,不管是调试还是运行日志的打印跟踪都非常有用。
但是在python中,却没有提供这样的错误,报错都是使用的默认的报错堆栈来跟踪错误,对日志格式输出不够友好。
气质python有堆栈管理的包 — inspect , 用起来也是挺方便的,我这里实现了__LINE__(), __FUNC__(), __FILE__()这三个命令,以供我们帮助
import inspect
def __LINE__():
stack_t = inspect.stack()
ttt = inspect.getframeinfo(stack_t[1][0])
return ttt.lineno
def __FUNC__():
stack_t = inspect.stack()
ttt = inspect.getframeinfo(stack_t[1][0])
return ttt.function
def __FILE__():
stack_t = inspect.stack()
ttt = inspect.getframeinfo(stack_t[1][0])
return ttt.filename
print(__LINE__(), __FUNC__(), __FILE__())
# 输出: 22 <module> afdafd.py
供大家参考
参考: