我的用法:
Usage:
  prog at (<v1> [<v1>]) [(before <v2>)] (alarm|email)我的命令行args:
at 4 alarm在我看来,at和alarm的出现将模糊值4定位为v1或v2。由于v2总是由before领导,我们可以看出4是v1。
然而,它并没有被解析。看我,试试看。
有人知道为什么它没有被解析,以及我如何使它在最小程度上改变用法的情况下进行解析?请注意,在使用中,我试图实现一种更自然的语言类型的接口,因此重新安排语法可能有点困难。
编辑:
几次尝试:
注:在github上提出的相同问题:https://github.com/docopt/docopt/issues/412
发布于 2018-05-27 18:12:47
Docopt似乎不支持其他参数前面的可选参数,除非它们是选项。解析at 4 before alarm的尝试表明,before被识别为<v1>的第二个位置参数。
{
  "<v1>": [
    "4", 
    "before"
  ], 
  "<v2>": null, 
  "alarm": true, 
  "at": true, 
  "before": false, 
  "email": false
}我建议把可选的位置参数移到最后。
Usage:
  prog [options] (alarm|email) at <v1> [<v1>]
Options:
  -b, --before <v2>   Do something beforehttps://stackoverflow.com/questions/49703888
复制相似问题