[Python-Dev] co_firstlineno on decorated functions (original) (raw)
Antoine Pitrou solipsis at pitrou.net
Tue Aug 3 14:48:32 CEST 2010
- Previous message: [Python-Dev] co_firstlineno on decorated functions
- Next message: [Python-Dev] co_firstlineno on decorated functions
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Tue, 3 Aug 2010 22:25:01 +1000 Nick Coghlan <ncoghlan at gmail.com> wrote:
On Tue, Aug 3, 2010 at 1:40 PM, Eli Bendersky <eliben at gmail.com> wrote: > The first print out correctly specifies the line "def foo" is in. However, > the second one points to the line with "@dummydecorator" instead of "def > bar". [Python 2.6] > > The side-effects of this behavior can be easily seen in the output of > modules like trace and profile. Would you say it's normal, or could this be > considered a bug?
Since the decorator is as much a part of the function definition as the def line is, I would say that it is correct (the name says "firstlineno", not "deflineno").
That's debatable. Since writing:
@b def a(): ...
is equivalent to:
def a(): ... a = b(a)
and in the latter case co_firstlineno points to the "def a()" line.
Furthermore, co_firstlineno 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.
Regards
Antoine.
- Previous message: [Python-Dev] co_firstlineno on decorated functions
- Next message: [Python-Dev] co_firstlineno on decorated functions
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]