On Fri, Jul 17, 2020 at 8:41 AM Ned Batchelder email@example.com wrote:
On 7/17/20 10:48 AM, Mark Shannon wrote:
I'd like to announce a new PEP.
It is mainly codifying that Python should do what you probably already thought it did :)
Should be uncontroversial, but all comments are welcome.
"""When a frame object is created, the f_lineno will be set to the line at which the function or class is defined. For modules it will be set to zero."""
Within this PEP it'd be good for us to be very pedantic. f_lineno is a single number. So which number is it given many class and function definition statements can span multiple lines.
Is it the line containing the class or def keyword? Or is it the line containing the trailing :?
Q: Why can't we have the information about the entire span of lines rather than consider a definition to be a "line"?
I think that question applies to later sections as well. Anywhere we refer to a "line", it could actually mean a span of lines. (especially when you consider \ continuation in situations you might not otherwise think could span lines)