PyCharm在粘贴代码时不修复缩进

时间:2014-11-18 18:44:55

标签: python pycharm

我有一些python代码:

def sameDay(date, dayOfWeek, week, year):    

theDay = datetime.fromtimestamp(
mktime(time.strptime("%s %s %s %s %s" % ("12", "00", dayOfWeek, week, year), "%H %M %w %W %Y")))
return theDay.date() == date.date()


def zeroPadding(string):    

integer = int(string)
if integer < 10:
return "0" + str(integer)
else:
return str(integer)

当我将这些行粘贴到PyCharm中时,缩进没有修复,我无法编译代码。我尝试使用"Reformat Code"选项,但这不起作用。我已经检查过&#34;智能缩进粘贴线&#34;也没有结果。

如何修复缩进,以便我可以在PyCharm中编译我的程序?

Here is a snapshot of the issue.

1 个答案:

答案 0 :(得分:3)

编辑器不可能这样做。

Python中的缩进具有含义。缩进代码表示语言语法中的块,并更改代码的执行方式。一旦压痕丢失,就无法查看代码并辨别其含义。

我们可以作为人类进行有根据的猜测,但不可能实现自动化。重新格式化代码自然不起作用,因为缩进不是Python中的格式化。我想象&#39; Smart indent&#39;只需根据您的项目设置从标签更改为空格或反向。

在你的例子中 - 假设它全部位于模块的顶层并且由于return语句/缺少很多嵌套,它几乎是明确的,但是它是可能的第二个函数可以嵌套在第一个函数中。

E.g:

if x < 1:
...
if y < 2:
...
else:
...

可以是:

if x < 1:
    ...
    if y < 2:
        ...
else:
    ...

或:

if x < 1:
    ...
    if y < 2:
        ...
    else:
        ...

Python中缩进的丢失就像从任何语言的源代码中删除随机字符一样。您丢失了一些代码,需要使用您对代码的理解来重构它。