gpt4 book ai didi

python - 默认参数替代无?

转载 作者:太空宇宙 更新时间:2023-11-03 11:27:58 24 4
gpt4 key购买 nike

我正在写一个类似这样的函数:

def parse(string, default=None):
try:
... # Body of function here
except ParseError:
if default is not None:
return default
raise

但是如果我真的想让函数返回 None,我就会遇到问题。

if len(sys.argv) > 4:
if flag.ignore_invalid:
result = parse(sys.argv[4], None) # Still raises error
else:
result = parse(sys.argv[4])

我尝试解决的问题是:

_DEFAULT = object()

def parse(string, default=_DEFAULT):
...
if default is not _DEFAULT:
...

但这似乎是我想多了,而且似乎有更简单的方法。

anyall 函数可以做到这一点(默认情况下允许 None),但我不知道怎么做。

最佳答案

除非你经常需要忽略 ParseError,否则我会让 parse 一直抛出,并且只在我需要的地方捕获它:

try:
parse(sys.argv[4])
except ParseError:
if not flag.ignore_invalid:
raise

虽然如果你必须有一个默认值,那么 _DEFAULT 解决方案就可以了。

关于python - 默认参数替代无?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30174820/

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