ホームページ >バックエンド開発 >Python チュートリアル >argparse でブール値を正しく解析するにはどうすればよいですか?
argparse を使用したブール値の解析
argparse では、ブール値コマンドライン引数の解析は一般的なタスクですが、これを試みるときによくある落とし穴が発生します。 type=bool 引数を使用して、「--foo True」または「--foo False」のような値を解析します。驚くべきことに、空の文字列を引数として使用する場合でも (例: "--foo " ")、解析された値は True と評価されます。
正しいブール解析のために、argparse は 2 つの推奨アプローチを提供します。
正規のアプローチ:
Python 3.9 以降でネイティブにサポートされている '--feature' および '-no-feature' 構文を使用します:
<code class="python">parser.add_argument('--feature', action=argparse.BooleanOptionalAction)</code>Python バージョン 3.9 より前の場合:
<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」の存在により値が True に設定され、「--no-feature」により値が False に設定されます。どちらの引数も存在しない場合は、デフォルトで True になります。
オプションのアプローチ (型変換を使用):
「--arg<code class="python">parser.add_argument("--arg", type=ast.literal_eval)</code>です。あるいは、ユーザー定義関数を作成することもできます:
以上がargparse でブール値を正しく解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。