[Python-Dev] co_firstlineno on decorated functions (original) (raw)
Eli Bendersky eliben at gmail.com
Tue Aug 3 05:40:52 CEST 2010
- Previous message: [Python-Dev] [Python-checkins] r83596 - in python/branches/release26-maint: Doc/library/constants.rst
- Next message: [Python-Dev] co_firstlineno on decorated functions
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
[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>
- Previous message: [Python-Dev] [Python-checkins] r83596 - in python/branches/release26-maint: Doc/library/constants.rst
- Next message: [Python-Dev] co_firstlineno on decorated functions
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]