如何在类定义中列出所有函数调用?

时间:2019-04-27 18:40:45

标签: python

我有一个非常长而复杂的python类(我试图将它拆分为尽可能多的函数),但是文件长约900行,这是跟踪所有函数的噩梦。

是否可以列出类中的所有函数并检查其他函数上的哪个函数调用?该文件是较大用户GUI的一部分,因此我无法运行类似CProfiler之类的东西。我正在寻找可以在不运行python文件的情况下遍历python文件的功能,而只是在文件中查找。

这是file,我的目标是获得这样的输出:

__init__

 - RunAnalyseDialog()
 - AddField(parent_widget)

check_consistency

 - self.fill_dict_tables()
 - etc.

2 个答案:

答案 0 :(得分:1)

如果您确实记录了函数,help(classname)应该help来帮助您:

class A:
    """A"""


    def __init__(self,a,b):
        """Does nothing with a,b - calls self.C()"""
        self.C() 

    def C(self): 
        pass

help(A)

输出:

class A
 |  A
 |  
 |  Methods defined here:
 |  
 |  C(self)
 |  
 |  __init__(self, a, b)
 |      Does nothing with a,b - calls self.C()

这只会显示您所记录的内容-因此,如果您没有在类/功能描述中放入任何“调用”文档,将不会有多大帮助。

答案 1 :(得分:0)

您看过Trace吗?可能就是您要的

$ python -m trace --listfuncs your_python_file.py

根据要列出的内容,跟踪模块有更多的调用来执行不同的操作。请参阅链接以获取更多选项