哪里出问题了 python 中,使用 global 会将全局变量设为本函数可用。同时,在函数内部访问变量会先本地再全局。 在嵌套函数中,使用 global 会产生不合常理的行为。所以 print 会打印本地 b 为什么会打印 12 ? 在函数 y() 中,语句 global a,b 使a,b扩展为全局,所以,在最高层,就算没有 b,也会产生 b。 也就是说, global a,b ,会认为 a 和 b 是最外层的变量。y() global b 后没赋值,顶层就没有 b。这说明,global 只是引入名称,并不做赋值等操作。