Tôi đã đoạn mã sau (sử dụng Python 2.7):subparser argparse tùy chọn (ví --version)
# shared command line options, like --version or --verbose
parser_shared = argparse.ArgumentParser(add_help=False)
parser_shared.add_argument('--version', action='store_true')
# the main parser, inherits from `parser_shared`
parser = argparse.ArgumentParser(description='main', parents=[parser_shared])
# several subcommands, which can't inherit from the main parser, since
# it would expect subcommands ad infinitum
subparsers = parser.add_subparsers('db', parents=[parser_shared])
...
args = parser.parse_args()
Bây giờ tôi muốn để có thể gọi chương trình này ví dụ với --version
được nối vào chương trình thông thường hoặc một số tiểu ban:
$ prog --version
0.1
$ prog db --version
0.1
Về cơ bản, tôi cần khai báo các trình con tùy chọn tùy chọn. Tôi biết rằng đây không phải là really supported, nhưng có cách giải quyết hoặc giải pháp thay thế nào không?
Edit: Các thông báo lỗi Tôi nhận:
$ prog db --version
# works fine
$ prog --version
usage: ....
prog: error: too few arguments
Lưu ý rằng chúng tôi chờ tính năng cơ bản này kể từ năm 2009. – yac
Tôi đã bắt đầu sử dụng docopt thay vì trình phân tích đối số dựng sẵn. Nó hỗ trợ sử dụng hỗn hợp có hoặc không có "hành động", hay còn gọi là "động từ". http://docopt.org/ –