Let exception fire or return None

Peter Otten __peter__ at web.de
Thu Apr 30 14:28:49 CEST 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