python 函数中不允许空行?

GoC*_*rry 2 python syntax

(A) 这有效:

def func():
    x = 1
    print(x)    
    return
Run Code Online (Sandbox Code Playgroud)

(B) 这不起作用:

def func():
    x = 1

    print(x)    
    return
Run Code Online (Sandbox Code Playgroud)

(C) 这也不起作用:(这里我使用“_”来表示空格)

def func():
    x = 1
____
    print(x)    
    return
Run Code Online (Sandbox Code Playgroud)

(D) 这有效:

def func():
    x = 1
____# some comment
    print(x)    
    return
Run Code Online (Sandbox Code Playgroud)

在 (B) 和 (C) 中,我都收到以下错误:

  • NameError: 名称 'x' 未定义
  • SyntaxError: 'return' 外部函数

我正在使用 Eclipse 和 PyDev 插件。Python 版本是 3.5,PyDev 版本是 4.5。

- - - - - 更新 - - - - -

  1. 该问题在 Jupyter Notebook 和 PyCharm 中无法重现。

  2. 在 Eclipse 中,我打开了“显示空白字符”。(C) 中的缩进确实由 4 个空格组成,它们在编辑器中显示为 4 个点。如果它是一个选项卡,在 Eclipse 编辑器中它会显示为“>>”。

鉴于我的调查和下面的评论/答案,我很确定这是 Eclipse 和/或 PyDev 的一个愚蠢的错误。

谢谢大家的帮助。

Dam*_*ero 5

小心制表符和空格,它们不一样,所以:

(_ 有空格)

def func():
____x = 1
____
____print(x)
____return
Run Code Online (Sandbox Code Playgroud)

它会工作得很好

不一样

(+ 是制表符,_ 是空格)

def func():
++x = 1
__
++print(x)
++return
Run Code Online (Sandbox Code Playgroud)

行不通