有这个代码:
x = 10
exec('x += 5', {}, {'x': x})
print(x) # prints 10.
# This works of course
exec('x += 5')
print(x) # prints 15.
为什么它会忽略我的x += 5
表情?通过将 globals/locals on 限制为我删除的其他内容exec
,因此它不允许更改变量吗?
PS虽然如果我修改字典它确实有效。它可能与不可变类型有关吗?
有这个代码:
x = 10
exec('x += 5', {}, {'x': x})
print(x) # prints 10.
# This works of course
exec('x += 5')
print(x) # prints 15.
为什么它会忽略我的x += 5
表情?通过将 globals/locals on 限制为我删除的其他内容exec
,因此它不允许更改变量吗?
PS虽然如果我修改字典它确实有效。它可能与不可变类型有关吗?