co_firstlineno on decorated functions
Eli Bendersky
eliben at gmail.com
Sun Aug 1 22:15:55 EDT 2010
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-list/attachments/20100802/12c7cdfe/attachment.html>
More information about the Python-list
mailing list