Let exception fire or return None

Peter Otten __peter__ at web.de
Thu Apr 30 08:28:49 EDT 2015


Cecil Westerhof wrote:

>> (2) you may want to take measures to limit memory usage, e. g.
>>
>> assert index >= 0
> 
> I put that in, but as first statement.

For the record, this was not a recommended check, but rather a way to 
communicate to the reader of my code that unlike yours it doesn't support 
negative indices.
 
>> try:
>>     [line] = itertools.islice(f, index, index+1)
>> except ValueError:
>>     raise IndexError
>> return line.rstrip()
> 
> In my case it is not important. (The biggest file I use has between
> 100 and 200 lines), but I publish it, so I should do my best to make
> it so lean as possible.

If you keep your 

return f.readlines()[index]

anyway you might allow for negative indices, and then

get_indexed_message(message_filename, -1)

fetches the last message in the file and

get_indexed_message(message_filename, slice(None, None))

fetches a list with all messages.




More information about the Python-list mailing list