如何保护自己免受python垂直字符串列表中逗号的丢失?


问题内容

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

subprocess.check_output( [
  'application',
  '-first-flag',
  '-second-flag',
  '-some-additional-flag'
] )

看起来不错,可读性强,不违反80列规则…但是,如果缺少逗号,则如下所示:

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

Python仍将通过连接两个字符串来假定此代码有效:(。是否有可能在仍然使用垂直方向的字符串列表且不膨胀代码的情况下以某种方式保护自己免受此类拼写错误(例如,将每个项目都包含在内str())?


问题答案:

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

subprocess.check_output( [
  ('application'),
  ('-first-flag'),
  ('-second-flag'),
  ('-some-additional-flag'),
] )

顺便说一句,Python可以使用逗号结尾,所以总是在行尾使用逗号,这样也可以减少错误。