使用argparse 解析布林命令列參數
使用argparse 解析布林參數時,如果使用者輸入值為" --foo True”或「--foo False」。儘管直覺上假設“--foo False”應計算為 False,但 argparse 將其解釋為 True。當為布林參數輸入空字串時也會發生此行為。
為了解決這個問題,argparse 為布林標誌提供了替代解析選項:
1。 Action=argparse.BooleanOptionalAction (Python 3.9 )
透過指定 action=argparse.BooleanOptionalAction,argparse 將自動將不帶參數的標誌的存在解釋為 True,將不存在的標誌解釋為 False。例如:
<code class="python">parser.add_argument('--feature', action=argparse.BooleanOptionalAction)</code>
2。 Store_True 和Store_False
對於3.9 之前的Python 版本,可以使用以下方法:
<code class="python">parser.add_argument('--feature', action='store_true') parser.add_argument('--no-feature', dest='feature', action='store_false') parser.set_defaults(feature=True)</code>
這允許使用者透過傳遞「--feature」來啟用或停用功能」或停用功能“--無功能”,分別。範例:
當解析器新增布林參數時,此函數可以用作型別參數。確保正確解釋“False”等值。
以上是如何使用 argparse 解析布林命令列參數:為什麼“--foo False”並不總是意味著 False?的詳細內容。更多資訊請關注PHP中文網其他相關文章!