gpt4 book ai didi

Python argparse --toggle --no-toggle 标志

转载 作者:行者123 更新时间:2023-12-01 08:53:26 28 4
gpt4 key购买 nike

有没有直接的使用方法--toggle--no-toggle使用 Python 的 argparse 标记?

现在我正在使用类似于以下内容的东西:

import argparse

parser = argparse.ArgumentParser()

parser.add_argument('--toggle',
action='store_true',
dest='toggle')
parser.add_argument('--no-toggle',
action='store_true',
default=True,
dest='notoggle')

options = parser.parse_args([])

我只是手动解析一个长 if 链中的可能性,但是如果有一种方法可以整理它并让解析器立即将状态存储在一个目的地,例如 options.toggle .这是否可行,如果可行,如何?

一个有点相关的答案是 Python argparse toggle flags但是我有兴趣使用 --no-作为长期选择 store_false切换前缀(类似于上述链接中概述的 - 短选项切换前缀)。

最佳答案

为什么不和你链接的帖子一样??

import argparse

class NegateAction(argparse.Action):
def __call__(self, parser, ns, values, option):
setattr(ns, self.dest, option[2:4] != 'no')

ap = argparse.ArgumentParser()
ap.add_argument('--toggle', '--no-toggle', dest='toggle', action=NegateAction, nargs=0)

那么如果标志有 no一开始它被设置为 False:
>>> ap.parse_args(['--toggle'])
Namespace(toggle=True)
>>> options = ap.parse_args(['--no-toggle'])
>>> options.toggle
False

关于Python argparse --toggle --no-toggle 标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34735831/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com