擅长:python、mysql、java
<p>最好使用自定义的<code>argparse.Action</code>。</p>
<pre><code>import argparse
import os
import sys
class MultilineVersionAction(argparse.Action):
verbose_version = '1.0\nCopyright (c) 2016 Lone Learner'
def __init__(self, option_strings, dest, nargs=None, **kwargs):
if nargs is not None:
raise ValueError('nargs not allowed')
# this is how argparse initialises `prog` by default
self.prog = os.path.basename(sys.argv[0])
super(MultilineVersionAction, self).__init__(option_strings, dest, nargs=0, **kwargs)
def __call__(self, parser, namespace, values, option_string=None):
parser.exit(message='{} {}\n'.format(self.prog, self.verbose_version))
# ...
self.parser.add_argument('-v', '--version', action=MultilineVersionAction)
</code></pre>