【问题标题】:PyDev paste to console with blank linesPyDev 用空行粘贴到控制台
【发布时间】:2023-03-06 20:33:01
【问题描述】:

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

【问题讨论】:

    标签: python eclipse pydev indentation


    【解决方案1】:

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

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

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

    但那当然丑得要命。

    【讨论】:

    • 谢谢——我希望有更好的消息,但经过大量搜索,我认为这可能是不可能的。这就是没有花括号的生活。
    猜你喜欢
    • 2013-08-23
    • 2015-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多