gpt4 book ai didi

python - 如何获取嵌套函数对象?

转载 作者:行者123 更新时间:2023-11-28 21:24:14 24 4
gpt4 key购买 nike

def foo():
print "I am foo"
def bar1():
print "I am bar1"
def bar2():
print "I am bar2"
def barN():
print "I am barN"


funobjs_in_foo = get_nest_functions(foo)

def get_nest_functions(funobj):
#how to write this function??

如何获取所有嵌套的函数对象?我可以通过 funobj.func_code.co_consts 获取嵌套函数的代码对象。但是我还没有找到一种方法来获取嵌套函数的函数对象。

感谢任何帮助。

最佳答案

如您所见,foo.func_code.co_consts 仅包含代码对象,不包含函数对象。

您无法仅仅因为函数对象不存在就获取它们。每当函数被调用时它们都会被重新创建(并且只有代码对象被重新使用)。

确认使用:

>>> def foo():
... def bar():
... print 'i am bar'
... return bar
....
>>> b1 = foo()
>>> b2 = foo()
>>> b1 is b2
False
>>> b1.func_code is b2.func_code
True

关于python - 如何获取嵌套函数对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16232244/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com