Python 3.x多行注释会引发语法错误

时间:2016-06-01 14:46:17

标签: python indentation

我正在开发一个Python项目,截至目前,我的代码已超过400多行。有一次,我不得不写一个关于一个需要解决的小bug的多行注释,并且解释器决定抛出语法错误。

根据解释器,语法错误发生在 elif 。 我重新检查了我的缩进,将标签转换为空格等。似乎没什么用。

                    if some_condition_1 == True:
                       do_something()

                    """
                    Sub stage (b):
                    Refer documentation [1.7A] for ...
                    ....
                    ....
                    ....
                    """
                    elif condition_1 == True:
                        if condition_2 == False:
                            list.append(item)

但是,如果删除多行注释,代码执行正常。

知道出了什么问题吗?请注意,我上面显示的代码示例位于文件的非常顶级,并且在其他地方没有任何出错的机会。

1 个答案:

答案 0 :(得分:8)

这是缩进错误。您的多行评论" (实际上是多行字符串)必须在if块下缩进,就像其他任何内容一样。

""" These kinds of things """在Python中并不是真正的评论。您只是创建一个字符串然后抛弃该值(不将其存储在任何地方)。由于Python没有真正的多行注释,许多人以这种方式使用它们。但是,由于它们不是真正的注释(它们不被解释器忽略),它们必须遵守所有正常的语法规则,包括缩进规则。

(请注意,当我说"创建一个字符串"我松散地说话。至少CPython有一个优化,不在这里创建一个对象。)