为什么全局和本地名称空间在交互式会话中始终相同

时间:2016-11-26 08:08:10

标签: python

在IDLE中运行locals()globals()会返回相同的键/值

我只使用。keys()提取密钥,并使用list()

转换为列表
['__doc__', '__spec__', '__builtins__', '__loader__', '__name__', '__package__']

运行以下代码

z = 100
def f(x):
    y = 100
    return y
f(z)

再次检查本地和全局变量,都具有相同的键/值

['z', '__doc__', '__spec__', '__builtins__', '__loader__', '__name__', '__package__', 'f']

为什么会发生这种情况以及为什么变量yx没有显示

1 个答案:

答案 0 :(得分:1)

在函数返回后,函数内定义的变量不再存在。

这使您可以使用具有相同内部变量名称的多个函数而不会产生干扰。

如果您在功能调用后致电locals(),则xy将不会出现。