我开始在 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/