python - Python 中是否有等同于 Typescript 感叹号的东西?

标签 python typescript python-typing

我开始在 Python 中使用类型提示。我有以下功能:

def func(arg: Optional[str]):
    # ...
    # make sure arg is a string and not None
    do_something(arg)  # do_something expects a string

do_something 的调用只有在 arg 确实是一个字符串而不是 None 时才能到达,但是 mypy 不会自己弄清楚(这不是 mypy 的问题,它不能明白一切)。所以 mypy 标记对 do_something 的调用,因为 arg 可能是 None

在 Typescript 中,可以使用 arg! 处理类似的情况 - 感叹号告诉静态分析器 arg 不是未定义的。 Python 中有类似的东西吗?

最佳答案

如果您的逻辑包含以下内容,Mypy 不应标记任何内容:

if arg is None:
    return None

如果那是不可能的,你也可以在警告之前放置一个断言:

assert x is not None

关于python - Python 中是否有等同于 Typescript 感叹号的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62498567/

相关文章:

python - 如何使用 django-rest-framework 在序列化器级别扩展模型

python - Heroku 中的 Dyno 计数

python - 用于从图像中识别文本的简单 python 库

jquery - 在 Brunch 2.8 中加载 JQuery 插件

python - 如何使用封闭类的类型键入提示方法?

python - 复杂阵列的智能打印

javascript - Electron + typescript 文件结构

requirejs - 带有 requireJs 的 TypeScript 用于编码模块化方式

python - 如何编写一个Python类型提示来指定一个带有某些参数或0个参数的Callable?

python-3.x - 抽象数据类的混合之间的冲突