是否有任何工具/库可以列出在其他方法/函数中调用的方法/函数列表
例如:
如果该工具或库为以下方法运行
定义计算(a:int,b:int,运算符:运算符):
如果operator==operator.add:
加(a、b)
elif运算符==运算符.subtract
减去(a,b)
然后它应该会回来
1。添加
2.减
这个问题和这个差不多,但它是针对Java的
这与PyCharm为查找用法所做的基本相同。
谢谢
这似乎起到了作用:
导入dis
def list_func_调用(fn):
funcs=[]
字节码=dis.字节码(fn)
instrs=列表(反向([instr代表字节码中的instr]))
对于枚举(instrs)中的(ix,instr):
如果instr.opname==“调用函数”:
加载函数指令=指令[ix+instr.arg+1]
函数追加(加载函数指令参数)
在枚举(反向(funcs),1)中为(ix,funcname)返回[%d.%s”%(ix,funcname)]
例如:
>&燃气轮机&燃气轮机;列出函数调用(计算)
['1.加','2.减']
这里发生的是:
- 我们为函数创建一个字节码对象
- 我们反转指令列表,因为函数名将
遵循函数调用 -
我们逐步浏览列表,对于每个调用函数指令
-
我们使用指令
arg参数来告诉我们有多少
我们有很多争论 -
我们通过查看一个函数来查找加载函数的指令
我们在打电话 -
我们将该函数的名称(
instr.argval)添加到一个列表中,然后
以请求的格式反转、枚举和返回
请注意,自Python3.6以来,有三条CALL\u FUNCTION指令,因此您必须查看文档,以扩展此示例,使其在当前Python中完全可用