但是,由于Python分配的工作方式,底层机制与您可能预期的有些不同。在Python中键入以下内容时"a“成为包含值3.4的对象的名称。这与C非常不同,在C中,变量名引用存储值的内存位置(赋值将数据复制到该位置)。因此,没有直接的方法将C中的变量赋值映射到Python中的变量赋值。请参阅下面的python代码片段b = a True
pass
global Xdef bar():我的问题是关于Python的设计:为什么Python的设计允许在不使用全局声明的情况下读取全局变量?也就是说,为什么只强制赋值具有全局,为什么不也强制全局读取?(这将使它变得均匀而优雅。)
注意:我可以看到在读取时没有歧义,但赋值时不清楚是要创建一个新的局部变量还是要赋值给全局变量。