我在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:意外缩进”,即使这段代码基于PEP 8是完全合法的。当然,这个原因是交互式shell自动缩进内容,它使用一个空行来表示信号代码块的结尾。基于一些搜索,我认为我需要的是像IPython中的魔术%粘贴或者关闭自动缩进的能力。
有没有办法在PyDev中粘贴空行代码块而不会导致缩进错误? (两种可能的解决方法是注释空行或在前一行的末尾使用'\'。我正在寻找能直接解决问题的东西。)
答案 0 :(得分:2)
不,没有办法实现这一目标。交互式shell中的空行具有“现在开始运行它!”的特殊含义。它与任何自动定位器无关。
您可以在每个空行的开头放置#
,然后忽略它:
def test_function():
x = 1 + 2
y = x - 1
#
if x > y:
print('x > y')
#
return(y)
但当然,这很难看。