amazing scope?

andrea crotti andrea.crotti.0 at gmail.com
Fri Nov 30 06:11:28 EST 2012


I wrote a script, refactored it and then introducing a bug as below:

def record_things():
    out.write("Hello world")

if __name__ == '__main__':
    with open('output', 'w') as out:
        record_things()


but the shocking thing is that it didn't actually stopped working, it
still works perfectly!

What my explanation might be is that the "out" is declared at module
level somehow,
but that's not really intuitive and looks wrong, and works both on
Python 2.7 and 3.2..



More information about the Python-list mailing list