python - 在 Python 3 中查找上下文的开始和结束
问题描述
我正在尝试查找上下文开始和结束的行号。在 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
但是,从对象中提取行号在Python 3.7frame
中失败:
start_line=12
end_line=14
解决方案
推荐阅读
- c++ - 错误 C2085:'int_fast63_t': 不在形式参数列表中
- android - 当我将 Kotlin 用于 Google Play 时,是否需要添加实现 'com.android.billingclient:billing-ktx:2.1.0'?
- android - 从其他包启动前台服务
- elasticsearch - Elasticsearch - 匹配嵌套对象数组中的所有子项
- android - 在 Android 中共享 pdf 文件时文件名未更改
- c++ - 写在向量中
带for循环 - javascript - 未使用的默认导出 - React Native
- sms - SMPP 协议中的节流错误出现在哪里?
- python - 使用证书和密钥将 curl 转换为 python 的问题
- android - APK测试。获取资源访问权限