繁体   English   中英

带注释的块/缩进干扰代码

[英]Commented blocks/indents interfering with code

仅显示代码可以最好地说明问题:

a = True
b = True
while True:
    """
    A
    """
    if a == True:
        pass
    """
    B
    """
    elif b == True:
        pass

问题是“ elif b”处存在语法错误,尽管删除注释时问题仍然消失。 我尝试删除注释上的缩进,从而导致在“ A”之后的结束注释行上出现预期的缩进。 我知道我可以改用“#”来注释部分,尽管“”“可以使事情变得更清晰,也更方便于大块代码。也许我遗漏了一些明显的东西,我将不胜感激。

字符串文字不是注释。 有时您可以假装它们是评论,但不是,而事实并非如此,这最终会伤到您。

elif必须在与前面的ifelif相关联的块的结尾之后立即出现。 中间可以有注释和空格,但没有语句,字符串也没有计数。 使用带有#真实注释。

如果您真的想假装字符串是注释,则可以将B字符串缩进if的主体中,但是它不会与要注释的块清晰地对齐,您将继续拥有弄乱您的格式以修补注释和字符串文字之间的差异。

当您使用"""triple quotes"""时,您正在创建一个新字符串。 因此,在您的elif之前,您实际上有一个未缩进的代码块,这需要前面的if语句。 引号上的不正确制表符将终止您的if块。 解析器到达elif块后,便没有匹配的if块,因此会出现错误。

三引号在地方用作文档字符串,可以充当注释,但实际上不是注释。

参考(搜索“””)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM