gpt4 book ai didi

python - 使用自由变量时是否创建了命名空间?

转载 作者:行者123 更新时间:2023-12-04 16:55:30 26 4
gpt4 key购买 nike

x = 2
def my_func():
print(x)
print(dir())

my_func()

语句 print(dir()) 的输出是一个空列表 [] .是否创建了本地命名空间但不包含任何名称,或者根本没有创建?

最佳答案

x在您的情况下是全局的一部分,您可以通过以下方式检查它

x = 2
def my_func():
print(x)
print(locals())
print(globals())

my_func()
print(locals())输出
{}

print(globals())输出
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x004FC230>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'C:/Users/leeron.arad/Documents/test-proj/venv/t.py', '__cached__': None, 'x': 2, 'my_func': <function my_func at 0x0058E978>}

在全局字典中,您可以看到 'x': 2打印在 my_func 中范围。 x values 不是在函数中创建的,它仅来自全局范围。

关于python - 使用自由变量时是否创建了命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62114369/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com