擅长:python、mysql、java
<p>当您看到命令模式时,如<code>git status</code>,<code>git commit</code>,等等,我们讨论的是<a href="http://docs.python.org/library/argparse.html#sub-commands" rel="noreferrer">sub-commands</a>。为了创建子命令,argparse允许您使用<em>子解析器</em>,这本质上与主解析器一样(使用命令行开关等)。在</p>
<p>定义如下:</p>
<pre><code>import argparse
parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers(help='sub-command help')
allon_parser = subparsers.add_parser('allon',
help='Toggles all output pins to ON.')
allon_parser.set_defaults(func=do_allon)
alloff_parser = subparsers.add_parser('alloff',
help="Toggles all output pins to OFF.")
alloff_parser.set_defaults(func=do_alloff)
cont_parser = subparsers.add_parser('cont',
help="Toggles all output pins continously on and off.")
cont_parser.set_defaults(func=do_cont)
args = parser.parse_args()
# Call the associated `func` function
args.func()
</code></pre>
<p>我已经将一个函数与每个子parser(<code>set_defaults(func=...)</code>)相关联,因此<code>args</code>结构将有一个指向所定义函数之一的<code>func</code>属性。我们只需要叫它。在</p>
<p><code>--help</code>的输出:</p>
^{pr2}$