使用其他命名空間/字典更新argparse命名空間

假設我有兩個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, arg_strings = parser.parse_known_args(arg_strings, None)
    for key, value in vars(subnamespace).items():
        setattr(namespace, key, value)

subnamespace中的值復制更新namespaceargparse使用泛型setattr來設置值,從而最小化對有效名稱的假設。

你也可以使用

 namespace.__dict__.update(subnamespace.__dict__)

但我還沒測試過。

主站蜘蛛池模板: 国产一区二区在线视频播放| 国产午夜精品一区理论片飘花| 久久国产三级无码一区二区| 中文字幕日韩一区二区不卡| 九九久久99综合一区二区| 日本一区二区三区精品视频| 麻豆文化传媒精品一区二区| 国产av成人一区二区三区| 国产成人一区二区动漫精品| 国产小仙女视频一区二区三区 | 日韩一区二区免费视频| 国产高清一区二区三区 | 日本精品一区二区三区在线视频| 精品少妇ay一区二区三区| 久久国产精品一区二区| 夜夜嗨AV一区二区三区| 真实国产乱子伦精品一区二区三区 | 无码少妇丰满熟妇一区二区| 国产精品揄拍一区二区| 国内自拍视频一区二区三区| 91精品福利一区二区| 一区二区三区在线观看| 亚洲丶国产丶欧美一区二区三区| 2018高清国产一区二区三区| 欧美日韩精品一区二区在线观看| 亚洲欧洲专线一区| 久久中文字幕无码一区二区 | 亚洲国产高清在线一区二区三区| 国产丝袜一区二区三区在线观看| 精品在线一区二区| 国产av福利一区二区三巨| 中文字幕一区二区三区视频在线| 精品国产一区二区三区在线观看| 少妇人妻偷人精品一区二区| 日本高清不卡一区| 无码国产精品一区二区免费式影视| 亚洲日韩AV一区二区三区四区| 精品无码一区二区三区水蜜桃| 精品成人一区二区三区四区| 国产精品高清一区二区三区| 亚洲av无码一区二区三区观看|