[Python-Dev] co_firstlineno on decorated functions (original) (raw)

Guido van Rossum guido at python.org
Tue Aug 3 16:14:42 CEST 2010


On Tue, Aug 3, 2010 at 6:05 AM, Nick Coghlan <ncoghlan at gmail.com> wrote:

On Tue, Aug 3, 2010 at 10:48 PM, Antoine Pitrou <solipsis at pitrou.net> wrote:

Furthermore, cofirstlineno is an attribute of the code object, not the function object, so it shouldn't ideally depend on whether a decorator was applied or not. You cut the part about the inspect module (and no doubt other code) relying on the current meaning, though. While I'd agree with you for a clean slate definition, that's not what we're dealing with here: "cofirstlineno" has an existing meaning, and it isn't "the line containing the def keyword", it's "the first line of the function, including any decorator lines". The decision could (and arguably should) have gone the other way when decorator syntax was first added, but changing our minds now would be making the situation worse rather than better.

What are the use cases for co_firstlineno? Even if it is for displaying the source code, I can find virtue for both sides of this argument.

-- --Guido van Rossum (python.org/~guido)



More information about the Python-Dev mailing list