如果我有一个可以返回 None
的函数(我不能改变这个函数):
def maybe() -> Optional[str]:
...
我想在表达式中使用它,例如像这样:
x = "Hello " + maybe() + " world"
这当然不进行类型检查,但我想让它在 maybe()
返回 None
时抛出异常。 (而且我希望它在一般情况下工作并通过类型检查;我不想仅仅依靠 +
抛出异常。)
显然我可以写一个函数来做到这一点:
T = TypeVar('T')
def throw_if_none(x: Optional[T]) -> T:
if x is None:
raise Exception(...)
return x
然后我可以这样做:
x = "Hello " + throw_if_none(maybe()) + " world"
但是是否有一种内置的方法可以做到这一点而无需我编写该函数?
明确地说,我希望必须修改 x =
行。我想避免定义 maybe()
。我很确定没有解决方案,但我想我应该检查一下,以防我错过了什么。