Ned Batchelder <n...@nedbatchelder.com> added the comment:
This is the --trace output for some stacked decorators: $ cat -n /tmp/decdec.py 1 def decorator1(f): 2 return f 3 4 def decorator2(f): 5 return f 6 7 def decorator3(f): 8 return f 9 10 @decorator1 11 @decorator2 12 @decorator3 13 def func(): 14 print("hello") 15 16 func() $ python3.7 -m trace --trace /tmp/decdec.py --- modulename: decdec, funcname: <module> decdec.py(1): def decorator1(f): decdec.py(4): def decorator2(f): decdec.py(7): def decorator3(f): decdec.py(10): @decorator1 decdec.py(11): @decorator2 decdec.py(12): @decorator3 --- modulename: decdec, funcname: decorator3 decdec.py(8): return f --- modulename: decdec, funcname: decorator2 decdec.py(5): return f --- modulename: decdec, funcname: decorator1 decdec.py(2): return f decdec.py(16): func() --- modulename: decdec, funcname: func decdec.py(14): print("hello") hello $ python3.8 -m trace --trace /tmp/decdec.py --- modulename: decdec, funcname: <module> decdec.py(1): def decorator1(f): decdec.py(4): def decorator2(f): decdec.py(7): def decorator3(f): decdec.py(10): @decorator1 decdec.py(11): @decorator2 decdec.py(12): @decorator3 decdec.py(10): @decorator1 --- modulename: decdec, funcname: decorator3 decdec.py(8): return f --- modulename: decdec, funcname: decorator2 decdec.py(5): return f --- modulename: decdec, funcname: decorator1 decdec.py(2): return f decdec.py(16): func() --- modulename: decdec, funcname: func decdec.py(14): print("hello") hello In Python3.8, "@decorator1" appears twice, as both the first and the last decorator line traced. There's no conceptual reason to show that line twice. I'd like to consider the stacked decorator case separately from the multi-line function call case. Yes, they are consequences of the same change. One change can have good effects and bad effects. We can do further work to eliminate the bad effects. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue34876> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com