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??
Run Code Online (Sandbox Code Playgroud)
如何获取所有嵌套的函数对象?我可以通过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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
89 次 |
| 最近记录: |