python - python - 如何区分argparse,python中的默认值和用户给定值?
问题描述
我正在使用 Python 3 argparse 来获取命令行参数。我有一个带有默认值的可选参数。当我读取它的值时,是否可以知道用户手动输入的值还是默认值?
早些时候,我已经设计如上。现在,我想存储以前使用的首选项。因此,如果用户没有为可选参数输入任何值,我想从以前的用法中获取值(如果有的话)。因此,我想确定该值是默认值还是用户给定值。
编辑1:我有多个这样的论点。我知道我可以删除参数的默认值并稍后以编程方式分配它们。我只想知道是否有更简单的解决方案
解决方案
如果用户没有为可选参数输入任何值,我想从以前的用法中获取值(如果有的话)。因此,我想确定该值是默认值还是用户给定值。
那么您不想提供默认值;使参数可选(例如Argparse 可选位置参数?),然后在生成的命名空间对象中显式检查它的存在或不存在,并在代码逻辑中执行适当的操作 - 大概检查以前使用中的值,然后提供默认作为最后的手段。(将默认值视为处理缺少值的快捷逻辑;您需要更复杂的逻辑,因此最好替换该系统而不是尝试解决它。)
推荐阅读
- laravel - Laravel 一种用于存储和更新的验证功能
- docker - 特雷菲克路线 404
- c# - De-serialize JSON into a List using a runtime Class
- django - django.db.utils.OperationalError: FATAL: database "library" does not exist
- python-3.x - Can we copy one column from excel and convert it to a list in Python?
- node.js - Send notification to disconnected user using socket io
- html - Bootstrap 4 delete button changed to weird shape after form submit
- android - How to get counts of records based on a column values in a single SQLite query using Room in Android?
- scala - pyspark parent child recursive on same dataframe
- python - How to sample dataframe that results in same distribution from a column in another dataframe