2

我在 Eclipse 中使用 PyDev 编写 Python 代码。我大量使用交互式 shell——这是我使用 Python 的主要原因。但是当我尝试将带有空行的代码粘贴到编辑器中时(通过 Ctrl-Alt-Enter 键绑定或直接剪切和粘贴),我遇到了“意外缩进”错误。一个打破的例子:

def test_function():
    x = 1 + 2
    y = x - 1

    if x > y:
        print('x > y')

    return(y)

这会产生“IndentationError: unexpected indent”,即使这段代码基于 PEP 8 是完全合法的。原因当然是交互式 shell 自动缩进,它使用空行来表示结束一个代码块。根据一些搜索,我认为我需要的是 IPython 中的魔术 %paste 或关闭自动缩进的能力。

有没有办法在 PyDev 中粘贴带有空行的代码块而不会导致缩进错误?(两种可能的解决方法是注释空行或在上一行的末尾使用“\”。我正在寻找直接解决问题的方法。)

4

1 回答 1

2

不,没有办法做到这一点。交互式 shell 中的空行具有“现在开始运行它!”的特殊含义。它与任何自动压痕器无关。

您可以将 a#放在每个空行的开头,然后将其忽略:

def test_function():
  x = 1 + 2
  y = x - 1
#
  if x > y:
    print('x > y')
#
  return(y)

但这当然是丑陋的。

于 2013-05-08T23:45:38.780 回答