Python源代码文件中空行的含义

2024-04-19 06:40:32 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我将从所有源文件中删除所有空行,Python程序是否具有完全相同的含义,例如,而不是:

def foo():
    x = 1

    if True:
        bar()

我会:

def foo():
    x = 1
    if True:
        bar()

Everywhere在这里的意思是无处不在。类内定义、导入后语句等

请不要评论风格和美学。这是另一个话题。将代码直接输入解释器也是如此。这个问题是关于源代码文件的

类似的问题是关于添加空行。我可以在任意两行代码之间添加它们而不改变语义吗

不幸的是,这里的文档不是很明确


Tags: 代码程序trueif定义foodef评论
3条回答

如果我在两个空行之后的第三行中声明编码无效,则运行正常:



# -*- coding: foobar -*-

如果删除一行或两行空行,则会发生以下情况:

SyntaxError: encoding problem: foobar with BOM

这是因为Python只在前两行中查找编码。当然,它不一定是无效的编码。对于有效编码,您也会得到与默认编码不同的结果,因为此时文件的解码方式将不同。同样,这取决于它是否在前两行中,所以空行可能会产生不同

Encoding declarations和该页的其余部分,包括Blank lines

那很好。Python对制表符很挑剔,但并不关心代码中是否包含空行

除了在多行字符串中,它在脚本中没有任何区别。但是,当您直接将代码输入解释器时,它使用空行来检测代码块的结尾(for循环、函数定义等),因此您可能会出错

相关问题 更多 >