为什么Python不允许我的注释缩进到适当的级别?

时间:2013-08-13 00:10:08

标签: python syntax comments indentation

我的Python代码如下所示:

'''
a) comments
'''
try:
  do_stuff()

'''
b) comments
'''
except Error:
  do_stuff()

但它抱怨说(b)注释是语法错误 - 它迫使我这样缩进:

'''
a) comments
'''
try:
  do_stuff()

  '''
  b) comments
  '''
except Error:
  do_stuff()

为什么会这样,我该如何解决这个问题?我希望(b)评论与他们描述的“除外”声明处于同一水平。

由于

3 个答案:

答案 0 :(得分:3)

三重引号实际上是字符串,而不是注释。

所以你需要相应地缩进字符串,(因为每个冒号(:)必须紧跟一个缩进的块)

答案 1 :(得分:2)

通常,三重引号用于多行字符串或docstrings,它们仅出现在您正在记录的函数/类/模块的开头。

如果不编写文档字符串,我建议您使用普通的注释语法:

# this is a comment

此外,如果您想要文档字符串,则约定规定您使用三重双引号:""",而不是'''

答案 2 :(得分:0)

首先,它不是评论,而是字符串,所以你真正想做的是不同的。缩进和dedent就像在其他一些语言中打开和关闭括号,所以你真正在做什么(用类似PHP的语法):

try {
    $some_string = 'a) comments';
    do_stuff();
} // notice closing bracket, which works like decreased indent
$some_string = 'b) comments';
catch (Error $e) {
    do_stuff();
}

请尝试使用真实评论:

# a) comments
try:
    do_stuff()

# b) comments
except Error:
    do_stuff()

演示:http://ideone.com/CxU56R