Fredrik Lundh wrote: > This wasn't very difficult, was it?
Well when you put it that way, no! :) But one thing that caught me up was what happens if the initial expression raises an exception? For example: with open('file.txt'): #do stuff If the file can't be opened for whatever reason, does __exit__ get called, or can it not get that far if the expression doesn't evaluate? I guess my thinking was this: before the with statement came along, the idiom for opening files was something like this: try: open('file.txt') #do stuff except IOError: #more stuff except OtherError: #yet more and so forth (and all this was wrapped in a try/finally blocked to close the file, I think). But now that we can use the 'with' statement, it seems like the initial opening of the file (previously "checked" in the try block) is now just floating around and still requires a try block wrapped around it in case something goes wrong. -- http://mail.python.org/mailman/listinfo/python-list