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

Eli Bendersky eliben at gmail.com
Tue Aug 3 05:40:52 CEST 2010


[Since I received no replies on this in python-list, perhaps python-dev is more appropriate]

Hello,

I've been tinkering with code.co_firstlineno for testing the trace.py module (Python Issue 9315), and ran into an interesting problem. Consider this code:

def dummydecorator(f): return f

def foo(a): return a

@dummydecorator def bar(a): return a

if name == "main": print foo.code.co_firstlineno print bar.code.co_firstlineno


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?

Eli -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20100803/069d2b81/attachment.html>



More information about the Python-Dev mailing list