首頁 > 後端開發 > Python教學 > 如何使用 argparse 解析布林命令列參數:為什麼'--foo False”並不總是意味著 False?

如何使用 argparse 解析布林命令列參數:為什麼'--foo False”並不總是意味著 False?

Linda Hamilton
發布: 2024-10-31 12:26:03
原創
538 人瀏覽過

How to Parse Boolean Command-Line Arguments with argparse: Why

使用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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板