根据这个问题,当我输入时,这个名为“parse_fail.py”的脚本应该打印 default=1:
python parse_fail.py --help
Run Code Online (Sandbox Code Playgroud)
在命令行上,但它没有。为什么不?
#parse_fail.py
import argparse
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument("--test", type=int, dest='test', default=1)
parser.parse_args()
args_dict = vars(parser.parse_args())
locals().update(args_dict)
print test
Run Code Online (Sandbox Code Playgroud)
当我运行这个脚本时,我得到:
$ python parser_fail.py --help
usage: parser_fail.py [-h] [--test TEST]
optional arguments:
-h, --help show this help message and exit
--test TEST
Run Code Online (Sandbox Code Playgroud)
编辑:添加了脚本的输出。
显然,您需要包含一个非空的帮助字符串。
这有效:
import argparse
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument("--test", type=int, dest='test', help="WHY NO DEFAULT???", default=1)
parser.parse_args()
args_dict = vars(parser.parse_args())
locals().update(args_dict)
print test
$ python parser_fail.py -h
usage: parser_fail.py [-h] [--test TEST]
optional arguments:
-h, --help show this help message and exit
--test TEST WHY NO DEFAULT??? (default: 1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2548 次 |
| 最近记录: |