【问题标题】:May I use True for Python type hintings?我可以将 True 用于 Python 类型提示吗?
【发布时间】:2023-01-15 10:11:09
【问题描述】:

我可以或应该为 Python 类型提示使用 True 或 False 吗?

def can_be_used_as_divider(num) -> True:
    if num == 0:
        raise ValueError('The number must not be zero!')

    return True

我有一个函数在不同情况下会引发一些错误,如果没有则返回 True。 我应该提出错误,返回错误还是有什么好的模式?

【问题讨论】:

  • 不要返回任何东西。
  • 引发和捕获错误通常比仅返回 False 并检查返回是否为 false 慢得多......所以一旦你的应用程序开始变慢你应该删除引发并返回 false ......你也有一个有限的嵌套 try/catch 的数量,因此请注意不要命中它。
  • @luk2302 从函数的名称来看,我会说不返回任何东西将与您期望的相反(因为None 评估为 false)
  • 您将该函数命名为好像它应该返回 False 而不是引发错误。

标签: python python-typing


【解决方案1】:

您可以使用typing.Literal
例子:

from typing import Literal

def can_be_used_as_divider(num) -> Literal[True]:
    if num == 0:
        raise ValueError('The number must not be zero!')

    return True

【讨论】:

    猜你喜欢
    • 2016-09-07
    • 2016-02-26
    • 1970-01-01
    • 1970-01-01
    • 2017-02-25
    • 1970-01-01
    • 2017-06-28
    • 2011-05-01
    • 1970-01-01
    相关资源
    最近更新 更多