如果我有需要缩进(for
,with
,函数等)的python代码,如果我错误放置,单行注释是否会结束构造的上下文?例如,假定step1
,step2
和step3
是已定义的函数,将:
def myFunc():
step1()
# step2()
step3()
(无意中)缩小myFunc()
的范围,使其仅包含step1
?如果我只想从3步序列中删除step2
,那么我是否必须将#
置于与构造范围内的语句相同的缩进级别?到目前为止,我所看到的所有代码都表明这是一项要求,但它可能只是一种编码习惯。
答案 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)