問題:
使用argparse 解析布林命令列參數時,為什麼值會發生參數時,為什麼值會發生參數變化像“--foo False”評估為True 而不是False?
答案:
規範方法:
建議的方法是使用以下格式:
command --feature
建議的方法是使用以下格式:
command --no-feature
要否定該功能,請使用:
Python 3.9 : parser.add_argument('--feature', action= argparse.BooleanOptionalAction)
parser.add_argument('--feature', action='store_true') parser.add_argument('--no-feature', dest='feature', action='store_false') parser.set_defaults(feature=True)
自訂>
import ast def t_or_f(arg): ua = str(arg).upper() if 'TRUE'.startswith(ua): return True elif 'FALSE'.startswith(ua): return False else: pass # Handle error condition appropriately
<code class="python">parser.add_argument("--my_bool", type=ast.literal_eval) parser.add_argument("--my_bool", type=t_or_f)</code>
以上是為什麼使用 argparse 解析布林參數時「--foo False」計算結果為 True?的詳細內容。更多資訊請關注PHP中文網其他相關文章!