我正在开发一个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)
但是,如果删除多行注释,代码执行正常。
知道出了什么问题吗?请注意,我上面显示的代码示例位于文件的非常顶级,并且在其他地方没有任何出错的机会。
答案 0 :(得分:8)
这是缩进错误。您的多行评论" (实际上是多行字符串)必须在if
块下缩进,就像其他任何内容一样。
""" These kinds of things """
在Python中并不是真正的评论。您只是创建一个字符串然后抛弃该值(不将其存储在任何地方)。由于Python没有真正的多行注释,许多人以这种方式使用它们。但是,由于它们不是真正的注释(它们不被解释器忽略),它们必须遵守所有正常的语法规则,包括缩进规则。
(请注意,当我说"创建一个字符串"我松散地说话。至少CPython有一个优化,不在这里创建一个对象。)