假設我有兩個argparse名稱空間
parser1 = argparse.ArgumentParser()
parser1.add_argument('--name', type=str, required=False, default='John')
args1 = parser1.parse_args()
parser2 = argparse.ArgumentParser(argument_default=argparse.SUPPRESS)
parser2.add_argument('--name', type=str, required=False)
args2 = parser2.parse_args()
如何用args2
更新args1
?我知道更新dicts,即。
dict = {'name': 'Pete'}
dict.update(**vars(args2))
我認為這應該是可行的(未經測試),但是您是否也可以用另一個名稱空間更新argparse名稱空間?我可以將args2
轉換成dict來進行更新。
在
subparser
操作類中,argparse.py
使用:用
subnamespace
中的值復制更新namespace
。argparse
使用泛型setattr
來設置值,從而最小化對有效名稱的假設。你也可以使用
但我還沒測試過。