"if False: from typing import Type"的含义是什么?



在浏览pytest src代码时,我发现了那个奇特的陈述,有人可以解释一下吗?

if False:  # TYPE_CHECKING
from typing import Type

我实际上目前正在查看 PEP 526,我认为这可能以某种方式与注释有关,但不确定如何。是否有可能有人会以评估True的方式注释False

快速浏览了一下打字src后,我发现:

# Constant that's True when type checking, but False here.
TYPE_CHECKING = False

因此,从我目前收集的信息来看,@chepner是对的。运行类型检查时,此语句的计算结果为True,然后可能需要实际导入。虽然这对我来说仍然看起来很奇怪(C 语言中的#if DBG更清晰(

if False: 
...

是一种编写现在(自 Python 3.5.2 以来(完成的内容的旧方式

from typing import TYPE_CHECKING
if TYPE_CHECKING: 
...

TYPE_CHECKING

假定由第三方静态类型True的特殊常量 跳棋。它在运行时False

最新更新