如何区分默认值和用户给定值?

Nag*_*S N 5 python argparse python-3.x

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

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

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

Kar*_*tel 5

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

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