On Sat, 15 Mar 2014 23:47:30 -0500, Mark H Harris wrote: > The other thing I'm tempted to do is to find names (even new names) that > read like English closely (whatever I mean by that) so that there is no > question about what is going on to a non expert. > > for line in getnumline(file): > {whatever}
I'm not an expert on your code, and I have very little idea what that is supposed to do. Judging by the name "getnumline", my first guess is that the function takes a line number n, and it will return the nth line of some source: getnumline(source, 5) => returns the 5th line from source But that's not how you use it. You pass it a "file". Is that a file object, or a file name? My guess is that it would be a file object, since if you wanted a file name you would have written getnumline(filename). Is that a file object that is open for reading or writing? I'd have to guess that it's open for reading, since you're (probably?) "getting" from the file rather than "putting". So... something like this: file = open("some thing") for line in getnumline(file): ... Presumably it iterates over the lines of the file, but what it does with the lines is hard to say. If I had to guess, I'd say... maybe it's extracting the lines that start with a line number? Something like this perhaps? def getnumline(file_object): count = 0 # Or start at 1? while True: line = file_object.readline() if line == '': break if line.startswith(str(count)): yield line count += 1 But this is only a guess, based on the assumption that while the function name is misleading, it's not *entirely* misleading. I'm puzzled why the function claims to do something with "line" singular, when you're obviously using it to iterate over lines plural. Contrast that with an example from the Python built-ins: enumerate. What you get is exactly what it says on the tin: the function is called enumerate, and enumerate is what it does: enumerate v 1: specify individually; "She enumerated the many obstacles she had encountered"; "The doctor recited the list of possible side effects of the drug" [syn: enumerate, recite, itemize, itemise] 2: determine the number or amount of; "Can you count the books on your shelf?"; "Count your change" [syn: count, number, enumerate, numerate] -- Steven D'Aprano http://import-that.dreamwidth.org/ -- https://mail.python.org/mailman/listinfo/python-list