python - “if False: from typing import Type”是什么意思?
问题描述
在查看 pytest src 代码时,我发现了那个特殊的语句,有人可以解释一下吗?
if False: # TYPE_CHECKING
from typing import Type
我目前实际上正在查看PEP 526,我认为这可能与注释有关,但不确定如何。是否有可能有人会False
以它会评估的方式进行注释True
?
在快速查看输入src 后,我发现:
# Constant that's True when type checking, but False here.
TYPE_CHECKING = False
所以从我目前收集到的信息来看,@chepner 是对的。运行类型检查时会评估此语句True
,然后可能需要实际导入。虽然这在我看来仍然很奇怪(#if DBG
在 C 中更清晰)
解决方案
if False:
...
是编写现在(从 Python 3.5.2 开始)的旧方法
from typing import TYPE_CHECKING
if TYPE_CHECKING:
...
True
3rd 方静态类型检查器假定的特殊常量。它False
在运行时。
推荐阅读
- javascript - 遍历承诺数组时,文本不是函数错误
- php - 我可以只选择 PHP 中的 FOR 循环吗?
- mysql - POST完成后如何从MySQL获取数据
- firebase - Flutter FirebaseUser 如何访问用户数据
- git - 如何对 gitea 配置进行版本化?
- eloquent - Laravel 5.8:总是给出多个主键语法或访问冲突错误
- node.js - MongoDB嵌套数组聚合正确
- spring-boot - 使用 JPA 的 Spring Boot Batch 动态多数据源
- netlogo - Netlogo:乌龟明显的古怪行为
- ios - SwiftUI - 如果 TabView 嵌套在 NavigationLink 中,TabView 内的视图会在一秒钟后跳转