首页 > 解决方案 > 什么决定了哪些变量包含在闭包中?

问题描述

Python 如何决定包含哪些变量?你可以看到当一个变量被定义为一个名字时,它被愉快地关闭了,但是当使用 定义时locals(),它并没有被关闭。

效果很好:

def outer():
    x = 5
    print(x)
    def inner():
        return x
    return inner()


print(outer())

不起作用:

def outer():
    locals()['x'] = 5
    print(locals()['x'])
    def inner():
        return locals()['x']
    return inner()
print(outer())

标签: python

解决方案


推荐阅读