小编Tae*_*ung的帖子

PyCharm缩进空间

如何将pycharm中的缩进更改为仅2个空格而不是4个?我的团队遵循pep8,但选择使用2个空格而不是4个,我找不到任何地方可以改变它.

pycharm

6
推荐指数
1
解决办法
9058
查看次数

为什么错误跟踪显示已编辑的脚本而不是实际运行的脚本?

背景

考虑下面的最小示例:

当我保存以下脚本并从终端运行它时,

import time

time.sleep(5)
raise Exception
Run Code Online (Sandbox Code Playgroud)

该代码将在睡眠五秒钟后引发错误,并留下以下回溯。

追溯(最近一次调用):
  <模块>中文件“ test / minimal_error.py”,第4行,
    引发异常
异常

现在,我运行脚本,在5秒钟的睡眠期间,在中间添加了一行。

import time

time.sleep(5)
a = 1
raise Exception
Run Code Online (Sandbox Code Playgroud)

在python解释器从睡眠中唤醒并到达下一行之后raise Exception,它将引发错误,但会留下以下回溯。

追溯(最近一次呼叫最近):
  文件“ test / minimal_error.py”,在<模块>中
    的第4行,a = 1
异常

因此,明显的问题是它不会打印出导致错误的实际代码。尽管它给出了正确的行号(正确地反映了正在运行的脚本的版本,虽然可以理解地没有用)和正确的错误消息,但是我真的不知道是哪段代码真正导致了错误。

在实际实践中,我实现了程序的一部分,运行该程序以查看该部分是否运行良好,并且在该程序仍在运行时,我继续进行下一步。当脚本引发错误时,我必须找到导致错误的实际代码行。我通常只是阅读错误消息,然后尝试推断出导致该错误的原始代码。有时很难猜测,因此我将脚本复制到剪贴板,并通过撤消运行脚本后编写的内容来回滚代码,检查导致错误的行,然后从剪贴板粘贴回去。

解释器显示a = 1的是代码“当前”版本的第raise Exception4行而不是代码的“运行”版本的第4 行,是否有任何可以理解的原因?如果解释器知道“ 4行”引起了错误,并且错误消息为“ Exception”,为什么它不能说命令raise Exception引发了该错误?

我不太确定这个问题是否在这里,但我认为我无法根据帮助中心的说法得出结论。我认为它是关于“程序员常用的[a]软件[tool]”(Python解释器),并且是“对于软件开发来说是一个实际的,可回答的问题,”。我认为这不是基于意见的,因为应该选择这种实现方式。

(在python 2.7.16、3.6.8、3.7.2和3.7.3中观察到相同,因此它似乎不是特定于版本的,而是在Python中发生的事情。)

python interpreter

3
推荐指数
1
解决办法
74
查看次数

标签 统计

interpreter ×1

pycharm ×1

python ×1