[Tutor] Program review

Ricardo Aráoz ricaraoz at gmail.com
Tue Jan 8 00:31:04 CET 2008


Kent Johnson wrote:
> Jeff Younker wrote:
> 
>> Or if you're using python 2.5 then you can use with statements:
>>
>> from __future__ import with_statements
>> from contextlib import closing
>> ...
>> def mails(self):
>>     with closing(open_file(self.direcciones)) as fIncl:
>>            with closing(open_file(self.excluidas)) as fExcl:
> 
> closing() is not needed, this can be written as
>      with open_file(self.direcciones) as fIncl:
>             with open_file(self.excluidas) as fExcl:
> 
> because open files are context managers.
> Or,
> from contextlib import nested
>      with nested(open_file(self.direcciones), open_file(self.excluidas)) 
> as (fIncl, fExcl):
> 

Nice! How would you add exception reporting to this?

>> As you have it written it terminates, but it also silently consumes the
>> exception.  If something goes wrong with your program then there is
>> no way of diagnosing the problem because the failure cause is never
>> reported.
> 
> The exception is written to the log. He may not want the traceback 
> printed to the console.
> 

Right!


More information about the Tutor mailing list