use*_*841 7 python inheritance default parent argparse
我有一堆Python脚本,它们使用通用代码来读取输入和编写不同类型的输出文件.
这些是化学结构文件.一些示例文件类型是.smi或.sdf.
默认情况下,我希望其中一些脚本以"smi"文件格式输出数据,而其他脚本则以"sdf"格式输出数据.
是否可以覆盖从父解析器继承的参数的默认值?
例如...
# Inherited code
filesParser = argparse.ArgumentParser(add_help=False)
filesParser.add_argument('-o', dest='outformat', default="smi")
# Script code
parser = argparse.ArgumentParser(description='inherts from filesParser', parents=[filesParser])
parser.add_argument('--foo')
# Something like...
# parser.outformat.default = "sdf"
args = parser.parse_args()
Run Code Online (Sandbox Code Playgroud)
第一篇文章,希望我的礼仪还可以.
非常感谢,戴夫
是的(docs):
>>> parser.parse_args([])
Namespace(foo=None, outformat='smi')
>>> parser.set_defaults(outformat='sdf')
>>> parser.parse_args([])
Namespace(foo=None, outformat='sdf')
Run Code Online (Sandbox Code Playgroud)