我尝试了解python的argparse的功能(或bug?)。Python Argparse严格的变量名称
在这里,我简单的代码:
import argparse
parser = argparse.ArgumentParser(usage="%(prog)s [--start]", add_help=False)
parser.add_argument("--start", help="Start prog", action="store_true")
arguments = parser.parse_args()
start_fpc = arguments.start
print arguments
当我执行这个脚本,既start
和star
参数被接受:
[ rsenet 2015-08-28 12:39:50] /tmp
$ python test.py --star
Namespace(start=True)
[ rsenet 2015-08-28 13:59:16] /tmp
$ python test.py --start
Namespace(start=True)
任何想法,为什么?如果是,是否可以禁用此功能?
似乎是由于https://docs.python.org/2.7/library/argparse.html#argument-abbreviations-前缀匹配,但没有提及如何防止它。 –
可能重复[禁用缩写](http://stackoverflow.com/questions/10750802/disable-abbreviation) –
是的,它来自缩写,但不可能禁用它在Python 2.X中:/ – RegisS