在C ++中进行调试的有用打印内容是
std::cout << __LINE__ << std::endl;
Run Code Online (Sandbox Code Playgroud)
当然,您可以简单地打印带有行号的字符串,例如:
std::cout << "this is line 54" << std::endl;
Run Code Online (Sandbox Code Playgroud)
但是当您四处移动时,它不会一直更改行号。Python中是否有任何等效的宏?
小智 8
定义一个类,该类的__str__方法返回当前行号:
import inspect
class LineNo:
def __str__(self):
return str(inspect.currentframe().f_back.f_lineno)
__line__ = LineNo()
Run Code Online (Sandbox Code Playgroud)
现在它更类似于 C++:
print(__file__, __line__)
Run Code Online (Sandbox Code Playgroud)
没有宏,但是你可以做
from inspect import currentframe, getframeinfo
print(getframeinfo(currentframe()).lineno)
Run Code Online (Sandbox Code Playgroud)
在Python中获取当前行号。
“当前行号”将是currentframe()被评估的行,仅供参考。
作为一个函数,所以你不必到处扩展它
import sys
def LINE():
return sys._getframe(1).f_lineno
print('This is line', LINE())
Run Code Online (Sandbox Code Playgroud)
TBH 我从来没有理解inspect模块的意义。