有时,在 Python 函数的开头,我会检查是否使用了正确的变量类型,或者是否将某些内容作为None. 例如:
def fails_with_none(x: int):
if x is None:
raise TypeError('Function fails with None!')
return x + 1
Run Code Online (Sandbox Code Playgroud)
我正在犹豫是否x应该输入 asint或 as Optional[int]。使用 just 的原因int是,从语义上讲,该函数需要一个int. 但是,如果我从编程的角度考虑这一点,该函数会处理整数和None输入。
有推荐的方法吗?
例如,根据这个答案,提示Optional意味着“要么需要特定类型的对象,要么None需要”。
然而,问题仍然存在:什么需要?如果我们将其理解为“函数逻辑所需要的”,那么它应该被输入为int. 如果我们将其理解为“正在执行的代码需要”,那么由于我们检查了 是否x is None,因此它应该作为可能的类型提示包含在内。