gpt4 book ai didi

python - 无法通过 exec() 语句更改函数中的全局变量?

转载 作者:IT老高 更新时间:2023-10-28 20:45:44 25 4
gpt4 key购买 nike

为什么我不能使用 exec() 从函数内部更改全局变量?当赋值语句在 exec() 之外时它工作正常。这是我的问题的一个例子:

>>> myvar = 'test'>>> def myfunc():...     global myvar...     exec('myvar = "changed!"')...     print(myvar)... >>> myfunc()test>>> print(myvar)test

最佳答案

根据 the docsexec 语句采用两个可选表达式,默认为 globals()locals(),并始终在locals() 一。

所以,只是更明确/具体/精确...:

>>> def myfunc():
... exec('myvar="boooh!"', globals())
...
>>> myfunc()
>>> myvar
'boooh!'

...您将能够随意更改全局变量。

关于python - 无法通过 exec() 语句更改函数中的全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2083353/

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