3
>>> import argparse
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument("--dog")
_StoreAction(option_strings=['--dog'], dest='dog', nargs=None, const=None, default=None, type=None, choices=None, help=None, metavar=None)
>>> args = parser.parse_args(["--do", "fido"])
>>> args
Namespace(dog='fido')
这看起来像一个错误。我本来期望它不承认这个论点。我怎样才能阻止这种情况发生?如何阻止argparse接受缩写的“长名称”标志? (Python 2.7)
编辑:apparently this is documented behavior...
[另一个选项给你](http://stackoverflow.com/a/39479562/2877364)(在这里发布,因为我不知道'@'符号将会如何广泛地进行)。 – cxw
你可以从3.5版本盗取'argparse.py'文件。 3.5中的所有内容都应该在2.7中工作,但有一个例外,即使用get_subactions()产生的yield。你会想保留2.7版本。 'argparse'只使用一个文件,因此使用自定义文件很容易。 – hpaulj