您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python argparse:将multiple-value参数与default和const结合使用

5b51 2022/1/14 8:20:48 python 字数 2091 阅读 480 来源 www.jb51.cc/python

我一直在寻找解决方案来添加一个行为为action ='store_const'的参数,但会采用多个值.因此,如果我根本不传递它,它应该没有值(或某个值),如果我传递它没有值它应该有默认值,如果我传递它有值(s)它应该是一个列表这些价值观.例如parser.parse_args(''.split()) parser.parse_args('-a'.split(

概述

我一直在寻找解决方案来添加一个行为为action =’store_const’的参数,但会采用多个值.

因此,如果我根本不传递它,它应该没有值(或某个值),如果我传递它没有值它应该有认值,如果我传递它有值(s)它应该是一个列表这些价值观.

例如

parser.parse_args(''.split())
parser.parse_args('-a'.split())
parser.parse_args('-a 1 2 3'.split())

应该导致

[None]
[0]
[1,2,3]

parser = argparse.ArgumentParser()
parser.add_argument('-a',default=[None],action='store',type=int,nargs='*')
print parser.parse_args(''.split())
print parser.parse_args('-a'.split())
print parser.parse_args('-a 1 2 3'.split())

如果您想要特殊情况-a而没有其他参数,那么在不使用自定义Action的情况下无法执行此操作:

import argparse
class MyAction(argparse.Action):
    def __call__(self,parser,namespace,values,option_string=None):
        if not values:
            setattr(namespace,self.dest,[0])
        else:
            setattr(namespace,values)

parser = argparse.ArgumentParser()
parser.add_argument('-a',action=MyAction,nargs='*')
print parser.parse_args(''.split())
print parser.parse_args('-a'.split())
print parser.parse_args('-a 1 2 3'.split())

总结

以上是编程之家为你收集整理的Python argparse:将multiple-value参数与default和const结合使用全部内容,希望文章能够帮你解决Python argparse:将multiple-value参数与default和const结合使用所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶