python - 为什么 Python3 会执行一段被注释掉的代码?
问题描述
在使用 Python 8 年多之后,我今天遇到了 Python 3.8 的问题:它执行了我注释掉的代码。
我能够中断它,因为它正在通过应该被注释阻止的代码路径来获取此屏幕截图:
正如函数名称所表明的那样,有问题的操作回滚有点费时,我很想知道发生了什么以避免将来处理它。
我目前最好的解释是,由于无论出于何种原因,代码都在远程机器上运行,因此在代码启动时注释掉并没有通过,而是用于堆栈跟踪。
有没有人有类似的经历或知道可能发生了什么?
解决方案
我从评论中证实了我的假设,文件如下:
import time
def dont_run():
raise Exception("oh no i ran it")
time.sleep(10)
dont_run()
我保存了那个文件,然后运行它。当它运行时,我注释掉了最后一行并重新保存了文件,然后我得到了这个错误:
$ py main.py
Traceback (most recent call last):
File "main.py", line 10, in <module>
# dont_run()
File "main.py", line 6, in dont_run
raise Exception("oh no i ran it")
Exception: oh no i ran it
所以我认为这里一定发生的是你在文件保存到磁盘之前运行了文件(可能是两个网络请求之间的竞争,你很不走运)。
推荐阅读
- python - Python Firefox Selenium 使用插件阻止图像(配置插件)
- c# - ASP.NET Core 使用凉亭安装引导程序
- flutter - 在flutter中按下按钮时如何导航到同一页面中的特定部分| 颤振网络
- amazon-web-services - Quicksight Embedded Analytics:添加相对于今天的日期过滤器
- php - 如何隐藏下拉菜单 PHP 中的选项?
- git - 如何从 git-log 中排除提交和所有父母?
- triggers - 除了服务器重启之外,是否存在 Quartz 使用“RECOVERING_JOBS.recover_”触发器触发作业的情况?
- c# - 从 observableCollection 的 collectionview 中删除组
- python - 将5个字典组合在一起保存为txt文件python
- angular - 重定向到外部 URL 时如何返回?角