函数体里面能获取当前函数名称,被谁 call 等等的信息吗?

2014-06-19 14:11:40 +08:00
 poke707
试下贴代码.能成不?
http://gist.github.com/334765c1c24375c4073a

在用ide调试的时候见到一些function object具有诸如func_name,func_code之类的.
这些在运行之前能否引用?
2913 次点击
所在节点    Python
6 条回复
paulw54jrn
2014-06-19 14:13:29 +08:00
http://stackoverflow.com/questions/10330119/how-to-backtrace-a-function-in-python-2-7
搬运工

import traceback

def foo():
bar()

def bar():
baz()

def baz():
traceback.print_stack()
# or trace = traceback.extract_stack()

foo()
poke707
2014-06-19 14:21:35 +08:00
@paulw54jrn 这个不太合适,我想的是在函数体内把"纯净的"函数状态引用出来
比如foo=__func__这样
miaoever
2014-06-19 14:31:37 +08:00
YufunHe
2014-06-19 14:33:11 +08:00
reflect
poke707
2014-06-19 14:52:56 +08:00
@miaoever 是的,大概可以这样 def f(a=0):return f.func_name
@YufunHe 反射还是高深了点...也多谢你的提示
xylophone21
2014-06-21 21:00:41 +08:00
import traceback

def foo():
bar()


def bar():
foobar()

def foobar():
traceback.print_stack()

if __name__ == '__main__':
foo()


是要这个吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/118399

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX