问题:给定一个添加了一些参数的argparse解析器实例,是否有方法删除/删除为其定义的参数?在
为什么:考虑以下示例:
>>>import argparse
>>>parser = argparse.ArgumentParser()
>>>parser.add_argument('--imagePath', action = "store", default = 'toto')
_StoreAction(option_strings=['--imagePath'], dest='imagePath', nargs=None, const=None, default='toto', type=None, choices=None, help=None, metavar=None)
>>>args = parser.parse_args()
>>>args
Namespace(imagePath='toto')
>>>parser.add_argument('--resultPath', action = "store", default = 'titi')
_StoreAction(option_strings=['--resultPath'], dest='resultPath', nargs=None, const=None, default='titi', type=None, choices=None, help=None, metavar=None)
>>>args = parser.parse_args()
>>>args
Namespace(imagePath='toto', resultPath='titi')
如果我们在脚本后面更改args.imagePath?在
我没有找到更改值的方法,但是如果我可以删除/删除参数imagePath,就可以用新值重新定义imagePath!在
就这么做吧:
args
是一个argparse.Namespace
对象。这是一个简单的类,它只添加了一个display方法,即使用print(args)
看到的内容。否则,所有普通的Python对象方法都可以工作。因此,您可以根据需要获取、设置甚至添加属性。在parser
试图将其关于命名空间对象的假设保持在最小值。它使用最通用的访问方法-hasattr
,getattr
,setattr
。在例如
^{pr2}$你也可以删除,例如
我很想把你的标题改成“How do you delete a parameter from a namespace”(如何从命名空间删除参数)。我不认为您是要从
parser
本身删除参数(由add_argument
创建的操作)。您的重点是通过解析创建的名称空间。在相关问题 更多 >
编程相关推荐