python单行注释是否必须遵守缩进/空格规则?

时间:2018-01-25 03:56:18

标签: python

如果我有需要缩进(forwith,函数等)的python代码,如果我错误放置,单行注释是否会结束构造的上下文?例如,假定step1step2step3是已定义的函数,将:

def myFunc():
    step1()
#   step2()
    step3()

(无意中)缩小myFunc()的范围,使其仅包含step1?如果我只想从3步序列中删除step2,那么我是否必须将#置于与构造范围内的语句相同的缩进级别?到目前为止,我所看到的所有代码都表明这是一项要求,但它可能只是一种编码习惯。

3 个答案:

答案 0 :(得分:1)

尝试一下:

def myFunc():
    print(1)
#   print(2)
    print(3)
myFunc()

输出:

1
3

所以是的,答案是“行注释不需要匹配缩进”。那就是PEP8 really prefers that they do, just for readability

答案 1 :(得分:1)

语法方式,忽略空行。空行包括具有任意数量的空格后跟注释的行。 https://docs.python.org/2/reference/lexical_analysis.html#blank-lines 以您在示例中显示的方式缩进注释不会更改函数中包含的代码块。

按照惯例,PEP8要求注释缩进到与代码相同的缩进。

答案 2 :(得分:0)

放置#

的位置并不重要

无论是在第一个标识级别还是接近指令,它下面的所有内容都将被执行。

我建议你玩下面的代码,你自己会弄清楚。

a = 1
b = 10
c = 100
d = 1000

if (a == 1):
    result = a+b
#   result = result + c
    result = result + d

    print(result)