我认为处理此问题的最佳方法是对返回的名称空间进行后处理。,之所以
argparse不支持,这是因为它在一个时间解析参数1。很容易
argparse检查是否已解析某些内容(这就是互斥参数起作用的原因),但是要查看将来是否
会 解析某些内容并不容易。
一个简单的:
parser.add_argument('-n','--name',...,default=None)parser.add_argument('-p','--password',...,default=None)ns = parser.parse_args()if len([x for x in (ns.name,ns.password) if x is not None]) == 1: parser.error('--name and --password must be given together')name = ns.name if ns.name is not None else "default_name"password = ns.password if ns.password is not None else "default_password"看起来就足够了。



