homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author nedbat
Recipients nedbat
Date 2018年10月02日.23:06:44
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1538521604.52.0.545547206417.issue34876@psf.upfronthosting.co.za>
In-reply-to
Content
When decorating a function, the sequence of lines reported to the trace function is different in Python3.8 than with previous versions
$ cat -n decorator.py
 1	def decorator(f):
 2	 return f
 3
 4	def f():
 5	 @decorator
 6	 @decorator
 7	 @decorator
 8	 def func():
 9	 pass
 10
 11	import sys
 12	def trace(frame, event, args):
 13	 print(frame.f_lineno, event)
 14	 return trace
 15
 16	sys.settrace(trace)
 17	f()
$ python3.7 decorator.py
4 call
5 line
6 line
7 line
1 call
2 line
2 return
1 call
2 line
2 return
1 call
2 line
2 return
7 return
$ python3.8 decorator.py
4 call
5 line
6 line
7 line
5 line
1 call
2 line
2 return
1 call
2 line
2 return
1 call
2 line
2 return
5 return
Is this intentional? Will it be changed back before 3.8 ships?
People are testing their projects against 3.8-dev, and reporting problems with coverage. The problems are due to these sorts of changes.
History
Date User Action Args
2018年10月02日 23:06:44nedbatsetrecipients: + nedbat
2018年10月02日 23:06:44nedbatsetmessageid: <1538521604.52.0.545547206417.issue34876@psf.upfronthosting.co.za>
2018年10月02日 23:06:44nedbatlinkissue34876 messages
2018年10月02日 23:06:44nedbatcreate

AltStyle によって変換されたページ (->オリジナル) /