栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python argparse整数条件(> = 12)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python argparse整数条件(> = 12)

一种方法是使用自定义类型。

def bandwidth_type(x):    x = int(x)    if x < 12:        raise argparse.ArgumentTypeError("Minimum bandwidth is 12")    return xparser.add_argument("-b", "--bandwidth", type=bandwidth_type, help="target bandwidth >= 12")

注意:与相比,我认为

ArgumentTypeError
是一个更正确的例外
ArgumentError
。但是,
ArgumentTypeError
并未将其记录为公共类
argparse
,因此在您自己的代码中使用它可能并不正确。我喜欢的一个选项是
argparse.error
像alecxe一样在他的答案中使用,尽管我将使用自定义操作而不是类型函数来访问解析器对象。

更为灵活的选项是自定义操作,它提供对当前解析器和名称空间对象的访问。

class BandwidthAction(argparse.Action):    def __call__(self, parser, namespace, values, option_string=None):        if values < 12: parser.error("Minimum bandwidth for {0} is 12".format(option_string)) #raise argparse.ArgumentError("Minimum bandwidth is 12")        setattr(namespace, self.dest, values)parser.add_argument("-b", "--bandwidth", action=BandwidthAction, type=int,          help="target bandwidth >= 12")


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/647143.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号