小编Sha*_*y87的帖子

如果 None 破坏了函数的逻辑,但我确实在函数体内检查它,我是否应该输入可选内容?

有时,在 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,因此它应该作为可能的类型提示包含在内。

python type-hinting python-typing

3
推荐指数
1
解决办法
1837
查看次数

标签 统计

python ×1

python-typing ×1

type-hinting ×1