Python 为什么执行';一些代码';在某些情况下,dict会产生一本大词典吗?

Python 为什么执行';一些代码';在某些情况下,dict会产生一本大词典吗?,python,exec,Python,Exec,今天我在python烹饪书上看到了一段代码 d={} exec defining_code in d 我在我的终端上试过,结果让我震惊: d={1:2} exec 'print 1' in d print d {'__builtins__': {'bytearray': <type 'bytearray'>, # Here I omitted hundreds of key-value pairs}, 1:2} d={1:2} d中的执行“打印1” 打印d {uuuuuuuu

今天我在python烹饪书上看到了一段代码

d={}
exec defining_code in d
我在我的终端上试过,结果让我震惊:

d={1:2} 
exec 'print 1' in d
print d
{'__builtins__': {'bytearray': <type 'bytearray'>, 
# Here I omitted hundreds of key-value pairs},
1:2}
d={1:2}
d中的执行“打印1”
打印d
{uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu,
#这里我省略了数百个键值对},
1:2}
这是不是像“导入这个”这样的把戏?如果是,为什么设计师会以这种形式制作?如果这不是一个骗局,那么它的机制是什么?

来自on the exec语句:

作为一种副作用,除了与执行代码设置的变量名相对应的键外,实现还可以向给定的字典中插入其他键。例如,当前实现可能会在键builtins(!)下添加对内置模块builtin字典的引用


谢谢,但我还是很困惑