[问题] 如何知道一个 function 牵扯到多少 modul

楼主: moodoa3583 (金牌台灣啤酒)   2021-09-07 08:34:54
大家早
最近在拆工作上的一个 package ,当初前人做这个 package 的时候为了能应用在多种情况所以主 module 里面有很多 function ,也因此也写了很多辅助的 module 互相 import
不过这么做的结果就是让整个程式太肥,现在要做的东西只需要主 module 里面的其中一个 function ,因此想特别拉出来做成一个新的轻量化程式
在循线找关联 module / function 这边花了满多时间,即使不直接影响主 module 的 module 或 function 也可能会有间接关系,这让我好奇有没有某种插件 (我是用 vscode) 可以在执行 package 的某个 function 时自动追踪牵扯到的 module 和 function ,并且把没用到的部分注解掉 (这部分可有可无)
以上,如果还有说明不齐的地方再麻烦和我说了,谢谢
作者: supremebboy (1234)   2021-09-07 09:56:00
就是列出目前的 call stack 吧?
楼主: moodoa3583 (金牌台灣啤酒)   2021-09-07 10:20:00
噢结果贴上来缩排都跑掉了,除了最后的 go() 之外,def 以下到下一个 def 之前都是缩排
作者: poototo (poototo)   2021-09-07 12:36:00
profile, print_caller?
作者: s0914714 (YA)   2021-09-07 13:21:00
traceback.print_stack()?
楼主: moodoa3583 (金牌台灣啤酒)   2021-09-07 17:34:00
http://i.imgur.com/YHSpXEA.jpghttp://i.imgur.com/jVJmqLC.jpg感谢各位的回应,试了 print caller (上图) 和 trackback.print_stack() (下图) 两种用法,以结果来说 trackback 比较接近,但这样必须把 trackback 埋在最源头的 function 而不是最末端的执行 function (而我是想透过最末端的执行 function 溯源找到所有有牵扯到的 function),以使用上来说有点本末倒置
作者: single4565 (leekdumpling韭菜水饺)   2021-09-07 20:33:00
vsc点function右键查看参考?
作者: gmccntzx1 (o.O)   2021-09-07 22:02:00
你有试过 call graph 吗? 可以找找看 pycallgraph2 看怎么使用。
作者: lycantrope (阿宽)   2021-09-07 22:08:00
https://docs.python.org/3/library/trace.htmlpython -m trace -t test2.py 之类?没仔细研究

Links booklink

Contact Us: admin [ a t ] ucptt.com