推 supremebboy: 就是列出目前的 call stack 吧? 09/07 09:56
嗯沒錯,類似執行
test.py
def foo():
print("foo")
==================
test2.py
from test import foo
def fum():
print("fum")
def bar():
print("bar")
fum()
foo()
def go():
bar()
go()
的時候,插件最終會回傳 (test2.py) go→ (test2.py) bar → (test2.py)fum → (test.
※ 編輯: moodoa3583 (223.140.147.126 臺灣), 09/07/2021 10:17:59
→ moodoa3583: 噢結果貼上來縮排都跑掉了,除了最後的 go() 之外,de09/07 10:20
→ moodoa3583: f 以下到下一個 def 之前都是縮排 09/07 10:20
※ 編輯: moodoa3583 (223.140.147.126 臺灣), 09/07/2021 10:46:09
推 poototo: profile, print_caller? 09/07 12:36
推 s0914714: traceback.print_stack()? 09/07 13:21
→ moodoa3583: 感謝各位的回應,試了 print caller (上圖) 和 trackb 09/07 17:35
→ moodoa3583: ack.print_stack() (下圖) 兩種用法,以結果來說 trac 09/07 17:35
→ moodoa3583: kback 比較接近,但這樣必須把 trackback 埋在最源頭 09/07 17:35
→ moodoa3583: 的 function 而不是最末端的執行 function (而我是想 09/07 17:35
→ moodoa3583: 透過最末端的執行 function 溯源找到所有有牽扯到的 f 09/07 17:35
→ moodoa3583: unction),以使用上來說有點本末倒置 09/07 17:35
推 single4565: vsc點function右鍵查看參考? 09/07 20:33
的確是個方法,但現在這個 package 太錯綜複雜,開參考人工一個一個 function 往上追有點耗時,所以才想說有沒有自動的方法
※ 編輯: moodoa3583 (223.140.147.126 臺灣), 09/07/2021 21:43:10
→ gmccntzx1: 你有試過 call graph 嗎? 可以找找看 pycallgraph2 看 09/07 22:02
→ gmccntzx1: 怎麼使用。 09/07 22:02
→ lycantrope: python -m trace -t test2.py 之類?沒仔細研究 09/07 22:15
http://i.imgur.com/DdQWs00.jpg
沒錯!這是我要的,雖然實際拿去追 package 有點小 error 但應該只是程式本身的小問題。感謝你
※ 編輯: moodoa3583 (223.140.147.126 臺灣), 09/08/2021 13:16:02