我正在使用 groovy 来调用 python 类,我默认为 None 空参数,但我发现很多问题也默认为 None null 或空字符串 ('')。我希望有一些东西argparse可以检查参数是否为 '' 并将其更改为 None 在这种情况下,因此在代码中我不必再检查None'' 只需检查 if is not None。
2 回答
慕娘9325324
TA贡献1783条经验 获得超4个赞
的类型参数ArgumentParser.add_argument()是一个“允许执行任何必要的类型检查和类型转换”的函数。你可以滥用这个:
import argparse
def nullable_string(val):
if not val:
return None
return val
parser = argparse.ArgumentParser()
parser.add_argument('--foo', type=nullable_string)
print(parser.parse_args(['--foo', ''])
输出:
Namespace(foo=None)
三国纷争
TA贡献1804条经验 获得超7个赞
将命令行参数指定为 typestr
为 default None
,例如:
parser.add_argument('-j', '--jfile', default=None, type=str)
然后,如果用户-j
完全省略,那么您将None
返回。但是如果用户-j
在命令行后面什么都不输入,他们将得到错误参数 -j/--jfile: expected one argument并且他们将不得不提供一个字符串值来解决这个问题。所以你应该总是得到一个None
或一个非空的字符串。
添加回答
举报
0/150
提交
取消