你如何在python的垂直字符串列表中保护自己不会丢失逗号?

gri*_*yvp 7 python

在python中,通常有垂直方向的字符串列表.例如:

subprocess.check_output( [
  'application',
  '-first-flag',
  '-second-flag',
  '-some-additional-flag'
] )
Run Code Online (Sandbox Code Playgroud)

这看起来不错,可读,不违反80列规则...但如果错过了逗号,就像这样:

subprocess.check_output( [
  'application',
  '-first-flag'  # missed comma here
  '-second-flag',
  '-some-additional-flag'
] )
Run Code Online (Sandbox Code Playgroud)

Python仍然会通过连接两个stings来假设这个代码有效:(.是否有可能以某种方式保护自己免受这种拼写错误,同时仍然使用垂直方向的字符串列表并且没有膨胀的代码(如包围内部的每个项目str())?

Ned*_*der 6

您可以将每个字符串括在括号中:

subprocess.check_output( [
  ('application'),
  ('-first-flag'),
  ('-second-flag'),
  ('-some-additional-flag'),
] )
Run Code Online (Sandbox Code Playgroud)

顺便说一句,Python 可以使用尾随逗号,因此始终在行尾使用逗号,这也应该可以减少错误。


Per*_*ins 5

您可以在空格后的行末使用逗号,如下所示:

subprocess.check_output( [
   'application'           ,
   '-first-flag'           ,
   '-second-flag'          ,
   '-some-additional-flag' ,
] )
Run Code Online (Sandbox Code Playgroud)

这样做看起来有些糟,但是如果您遗漏了任何参数,很容易发现。

  • [建议在PEP-8中使用](http://www.python.org/dev/peps/pep-0008/#whitespace-in-expressions-and-statements)-虽然它是一个指南,但您可能会发现如果其他人使用/贡献您的代码,那么他们就会觉得很难读/写。 (3认同)
  • 因此,关于它混乱的警告,在我第一次编写文件并进行大量调试时经常使用它,一旦完成,我将使语法和样式符合建议的标准。 (2认同)