amazing scope?

Jean-Michel Pichavant jeanmichel at sequans.com
Fri Nov 30 06:31:49 EST 2012



----- Original Message -----
> 2012/11/30 andrea crotti <andrea.crotti.0 at gmail.com>:
> 
> Already changing it to:
> 
> def record_things():
>     out.write("Hello world")
> 
> def main():
>     with open('output', 'w') as out:
>         record_things()
> 
> if __name__ == '__main__':
>     main()
> 
> makes it stops working as expected, so it's really just a corner case
> of using the if __name__ == '__main__'
> which I had never encountered before..

You do realize that 

foo = 5 # define at the module level

if __name__ == '__main__':
    bar = 6 # also at the module level

if True:
    ham = 8 # still at the module level

def func()
    # scope has changed, only at the func level
    jam = 9

Nothing magic about if __name__ == '__main__'

Cheers,

JM


-- IMPORTANT NOTICE: 

The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.


More information about the Python-list mailing list