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