多行语句问题

时间:2014-05-09 13:25:35

标签: python comments

我已阅读多行语句的各种指南,但找不到包含需要拆分多行的注释,变量,文本和文本的指南。

我正在努力拆分下面的代码:

ex = 25
cmd = 'raspistill -o ' + filename + ' -t 1000 -ex ' + ex 

带有评论的多行,如下所示:

cmd =   'raspistill -o ' + filename + \   # explain line 1 
        ' -t 1000' \                      # explain line 2
        '-ex ' + ex                       # explain line 3

这是将代码分割成多行的最佳方法吗?

2 个答案:

答案 0 :(得分:1)

您可以使用括号而不是反斜杠来执行行继续:

a = ( "aaa"   +     # foo
      "bbb"   +     # bar
      "ccc"         # baz
    )

基本上当你在任何类型的括号中都有一个表达式时,python不会在行尾结束语句,但会先等到它找到相应的结束括号。

我发现它比反斜杠更具可读性和惯用性。

答案 1 :(得分:0)

我不确定您使用的语言是什么,但这句话可能没有按照您的想法进行解析:

cmd =   'raspistill -o ' + filename + \   # explain line 1 
        ' -t 1000' \                      # explain line 2
        '-ex ' + ex                       # explain line 3

在Python中,您会收到错误:

SyntaxError: unexpected character after line continuation character

问题在于,行继续符(反斜杠\)不会转义换行符,它只会转义后续空格。这是因为新行不遵循反斜杠。在您的评论之后,它要等到很久以后才会出现。所以你这里仍然有3条独立的线。

删除额外的评论并将它们放在前面,例如:

# explain lines 1, 2, and 3
#
cmd =   'raspistill -o ' + filename + \
        ' -t 1000' \
        '-ex ' + ex