在函数内部,我可以使用dir()来获取嵌套函数列表:
>>> def outer():
... def inner(): pass
... print dir()
...
>>> outer()
['inner']
......但是那又怎样?如何通过名称访问这些功能?我看不到__dict__
属性。
答案 0 :(得分:2)
第一:你确定要这么做吗?这通常不是一个好主意。那就是说,
def outer():
def inner(): pass
locals()['inner']()
您可以使用locals
获取本地变量值的字典,然后查找'inner'
的值以获取该函数。但是,不要尝试编辑局部变量dict;它不会正常工作。
如果要访问外部函数外部的内部函数,则需要以某种方式存储它。局部变量不会成为函数属性或类似的东西;它们在函数退出时被丢弃。您可以返回功能:
def outer():
def inner(): pass
return inner
nested_func = outer()
nested_func()