gpt4 book ai didi

python - 在执行代码中声明的变量不会在 Python 3 中成为本地变量 – 文档?

转载 作者:太空狗 更新时间:2023-10-29 21:47:36 25 4
gpt4 key购买 nike

代码

x = 3
def f():
exec("x = 2")
print(x)
f()

在 Python 2 和 Python 3 上运行,但打印出不同的结果。是否在任何地方记录了此更改? (指向邮件列表讨论的指针也很好——我问这个纯粹是出于好奇。)

最佳答案

那是因为从 Python 3 中删除了一些 hackery。

关于 exec() function 的新文档对此有一些注释,但没有完全解释这种情况。

Python 2,在看到 exec 语句后,将对变量和函数的每次访问更改为 LOAD_NAME 而不是 LOAD_FAST 或 LOAD_GLOBAL。

检查我关于那个的其他答案here .

关于python - 在执行代码中声明的变量不会在 Python 3 中成为本地变量 – 文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7668724/

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