Найти начало и конец контекста в Python 3 - PullRequest
2 голосов
/ 29 апреля 2019

Я пытаюсь найти номер строки начала и конца контекста.В Python 2.7 я могу успешно сделать это следующим образом:

1 from contextlib import contextmanager
2 import sys
3
4 @contextmanager
5 def print_start_end_ctx():
6     frame = sys._getframe(2)
7     start_line = frame.f_lineno
8     yield
9     end_line = frame.f_lineno
10    print("start_line={}\nend_line={}".format(start_line, end_line))
11 
12 with print_start_end_ctx():
13     100
14     (200,
15      300)

Вывод в Python 2.7 :

start_line=12
end_line=15

Однако,извлечение номеров строк из frame сбой объекта в Python 3.7 :

start_line=12
end_line=14
...