[python]for 循环中的局部变量陷阱

    先看一段代码:

    >>> x = 10
    >>> [x for x in range(3)]
    [0, 1, 2]
    >>> x
    2
    

    从这段代码,我们可以知道:for 循环中用于循环主体的变量会影响上下文的局部变量。

    所以,类似下面这样的代码就会有问题:

    for x in foo:
        # ...
        bar = [ x for x in foobar]
        n = x['abc']   # error
        # ...
    

    Comments