Python 获取行n°;训令

Python 获取行n°;训令,python,python-3.x,Python,Python 3.x,我正在写一个代码,我已经知道当我有更多信息时,我将不得不更改一些指令。 我已经知道我将要更改的具体行,但由于代码有点长,我想通过打印这些行的n°来准备更改这些行的时刻。实际上,我想要一个类似this_line()的函数,它的工作原理如下: 1 2 3 print('this line is the n°'.format(this_line()) 4 >>> this line is the n°3 我可以在不将代码转换为.txt并计算行数的情况下执行此操作吗?您已经介绍

我正在写一个代码,我已经知道当我有更多信息时,我将不得不更改一些指令。 我已经知道我将要更改的具体行,但由于代码有点长,我想通过打印这些行的n°来准备更改这些行的时刻。实际上,我想要一个类似this_line()的函数,它的工作原理如下:

1 
2 
3 print('this line is the n°'.format(this_line())
4

>>> this line is the n°3
我可以在不将代码转换为.txt并计算行数的情况下执行此操作吗?

您已经介绍过了。只需导入检查,然后运行:

inspect.currentframe().f_lineno
获取当前执行帧的行号

注意,这是CPython(参考解释器)特有的功能,根据文档:

CPython实现细节:此函数依赖于解释器中的Python堆栈框架支持,这并不能保证在所有Python实现中都存在。如果在没有Python堆栈框架支持的实现中运行,此函数将返回None

我不清楚帧的概念及其行号是否会存在于其他地方,但这将在参考解释器上正常工作。这可能是便携式的(没有其他声明),但我不能确定:

inspect.stack()[0].lineno
你有保险吗。只需导入检查,然后运行:

inspect.currentframe().f_lineno
获取当前执行帧的行号

注意,这是CPython(参考解释器)特有的功能,根据文档:

CPython实现细节:此函数依赖于解释器中的Python堆栈框架支持,这并不能保证在所有Python实现中都存在。如果在没有Python堆栈框架支持的实现中运行,此函数将返回None

我不清楚帧的概念及其行号是否会存在于其他地方,但这将在参考解释器上正常工作。这可能是便携式的(没有其他声明),但我不能确定:

inspect.stack()[0].lineno

它在特定的小环境中可能很有用,但是您不确定您是否更愿意组织代码,这样您就不必查看单个大函数了吗?这会给你很大帮助,而不是打印一行的#。我需要用不同的名称打开许多不同的文件,我暂时不知道这些文件的名称,我只有一些“培训文件”,可以测试代码是否正确,但是当我有最终的文件时,我必须一个接一个地更改我在代码中打开的所有文件名,然后换一种方式思考。在模块顶部使用变量,该模块现在使用培训文件,并在代码中使用这些变量,而不是硬编码值。那么您只需要更改最上面的变量?在特定的小环境中,它的可能副本可能会很有用,但是您不确定您是否更愿意组织代码,这样您就不必查看单个大函数了吗?这会给你很大帮助,而不是打印一行的#。我需要用不同的名称打开许多不同的文件,我暂时不知道这些文件的名称,我只有一些“培训文件”,可以测试代码是否正确,但是当我有最终的文件时,我必须一个接一个地更改我在代码中打开的所有文件名,然后换一种方式思考。在模块顶部使用变量,该模块现在使用培训文件,并在代码中使用这些变量,而不是硬编码值。那么您只需更改最上面的变量?可能重复