gpt4 book ai didi

python如何以编程方式获取类定义的行号

转载 作者:太空宇宙 更新时间:2023-11-03 15:58:16 25 4
gpt4 key购买 nike

假设我有一个名为 test.py 的模块。在这个文件中,我知道一个名为 dummy 的类。导入后如何获取类虚拟定义的行号?

有API可以做这样的事情吗?

如果 dummy 是一个函数,那么 dummy.__code__.co_firSTLineno 将返回行号。但是如果 dummy 是一个类,它就没有__code__属性

我想知道有没有一种方法可以在不解析文件的情况下返回 no 行。

最佳答案

inspect.findsource(test.dummy)[1] 在源文件中通过正则表达式搜索提供行号(相当慢)。

如果你定义类,行号可以像这样公开:

class MyClass:
def test_01(self):
assert 1
_classline_ = inspect.currentframe().f_code.co_firstlineno
_thisline_ = inspect.currentframe().f_lineno

更新 2020/Python 3.9+:inspect.findsource 现在使用(慢)ast 而不是正则表达式。 (bpo-35113/commit 696136b9)

关于python如何以编程方式获取类定义的行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41971660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com