旧的行为是一个错误,但是由于某些代码依赖于此,因此无法轻松修复。
i列表推导中的变量应
i与顶层变量不同。从逻辑上讲,它应该有自己的范围,该范围不应超出理解范围,因为其值仅在理解范围内有意义。但是在Python
2.x中,由于实现细节,范围超出了必要范围,导致变量“泄漏”到外部范围中,从而导致令人困惑的结果。
故意不打算将Python 3.0与以前的版本向后兼容,因此他们利用此机会来修复此不良行为。
在Python 2.3及更高版本中,列表理解将每个控件的控制变量“泄漏”到包含作用域中。但是,不建议使用此行为,并且在Python 3.0中不能依靠它
资源



