首页 > 解决方案 > python - 如何区分argparse,python中的默认值和用户给定值?

问题描述

我正在使用 Python 3 argparse 来获取命令行参数。我有一个带有默认值的可选参数。当我读取它的值时,是否可以知道用户手动输入的值还是默认值?

早些时候,我已经设计如上。现在,我想存储以前使用的首选项。因此,如果用户没有为可选参数输入任何值,我想从以前的用法中获取值(如果有的话)。因此,我想确定该值是默认值还是用户给定值。

编辑1:我有多个这样的论点。我知道我可以删除参数的默认值并稍后以编程方式分配它们。我只想知道是否有更简单的解决方案

标签: pythonpython-3.xargparse

解决方案


如果用户没有为可选参数输入任何值,我想从以前的用法中获取值(如果有的话)。因此,我想确定该值是默认值还是用户给定值。

那么您不想提供默认值;使参数可选(例如Argparse 可选位置参数?),然后在生成的命名空间对象中显式检查它的存在或不存在,并在代码逻辑中执行适当的操作 - 大概检查以前使用中的值,然后提供默认作为最后的手段。(将默认值视为处理缺少值的快捷逻辑;您需要更复杂的逻辑,因此最好替换该系统而不是尝试解决它。​​)


推荐阅读