如何在运行的Python文件中便捷打印当前代码行号?
在Python中打印当前代码行号的简便方法
Python没有内置的__line__变量,但可以通过以下两种简便方式实现你要的效果:
方法一:使用sys模块的_getframe()
导入sys后,直接调用栈帧的f_lineno属性就能获取当前代码行号:
import sys a = 1 print(sys._getframe().f_lineno) # 输出2 b = 2 c = a + b print(sys._getframe().f_lineno) # 输出5
方法二:使用inspect模块(更规范)
inspect是Python官方提供的运行时对象检查模块,用法和第一种类似:
import inspect a = 1 print(inspect.currentframe().f_lineno) # 输出2 b = 2 c = a + b print(inspect.currentframe().f_lineno) # 输出5
更简洁的封装
如果需要多次调用,可以封装成函数,让代码更清爽:
import sys def get_line_no(): # 参数1表示获取调用该函数的上一层栈帧行号 return sys._getframe(1).f_lineno a = 1 print(get_line_no()) # 输出2 b = 2 c = a + b print(get_line_no()) # 输出5
内容的提问来源于stack exchange,提问作者Chris P
相关产品推荐
相关产品推荐

