Python 语言参考覆盖率
这是 https://docs.pythonlang.cn/3/reference/ 中列出的功能及其在 TorchScript 中的支持情况的 1:1 映射。分类如下
| 部分 | 状态 | 注意 | 
|---|
| 1. 简介 | 不相关 |  | 
| 1.1. 备用实现 | 不相关 |  | 
| 1.2. 符号 | 不相关 |  | 
| 2. 词法分析 | 不相关 |  | 
| 2.1. 行结构 | 不相关 |  | 
| 2.1.1. 逻辑行 | 不相关 |  | 
| 2.1.2. 物理行 | 支持 |  | 
| 2.1.3. 注释 | 支持 |  | 
| 2.1.4. 编码声明 | 不支持 | TorchScript 明确不支持 Unicode | 
| 2.1.5. 显式行连接 | 支持 |  | 
| 2.1.6. 隐式行连接 | 支持 |  | 
| 2.1.7. 空行 | 支持 |  | 
| 2.1.8. 缩进 | 支持 |  | 
| 2.1.9. 符号之间的空格 | 不相关 |  | 
| 2.2. 其他符号 | 不相关 |  | 
| 2.3. 标识符和关键字 | 支持 |  | 
| 2.3.1. 关键字 | 支持 |  | 
| 2.3.2. 保留的标识符类别 | 支持 |  | 
| 2.4. 字面量 | 不相关 |  | 
| 2.4.1. 字符串和字节字面量 | 支持 |  | 
| 2.4.2. 字符串字面量连接 | 支持 |  | 
| 2.4.3. 格式化字符串字面量 | 部分支持 |  | 
| 2.4.4. 数字字面量 | 支持 |  | 
| 2.4.5. 整数字面量 | 支持 |  | 
| 2.4.6. 浮点数字面量 | 支持 |  | 
| 2.4.7. 虚数字面量 | 不支持 |  | 
| 2.5. 运算符 | 部分支持 | 不支持:<<,>>,:= | 
| 2.6. 分隔符 | 部分支持 | 不支持:**=,<<=,>>=,%=,^=,@=,&=,//=,%运算符对于某些类型(例如str) | 
| 3. 数据模型 | 不相关 |  | 
| 3.1. 对象、值和类型 | 不相关 |  | 
| 3.2. 标准类型层次结构 | 部分支持 | 不支持:NotImplemented、Ellipsis、numbers.Complex、bytes、字节数组、集合、冻结集合、生成器、协程、异步生成器、模块、I/O 对象、内部对象、切片对象(尽管支持切片)、classmethod | 
| 3.3. 特殊方法名称 | 支持 |  | 
| 3.3.1. 基本定制 | 部分支持 | 不支持:__new__、__del__、__bytes__、__format__、__hash__, | 
| 3.3.2. 定制属性访问 | 不支持 |  | 
| 3.3.2.1. 定制模块属性访问 | 不支持 |  | 
| 3.3.2.2. 实现描述符 | 不支持 |  | 
| 3.3.2.3. 调用描述符 | 不支持 |  | 
| 3.3.2.4. __slots__ | 不支持 |  | 
| 3.3.2.4.1. 关于使用 __slots__ 的注意事项 | 不支持 |  | 
| 3.3.3. 定制类创建 | 不支持 |  | 
| 3.3.3.1. 元类 | 不支持 |  | 
| 3.3.3.2. 解析 MRO 条目 | 不支持 | super()不支持
 | 
| 3.3.3.3. 确定合适的元类 | 不相关 |  | 
| 3.3.3.4. 准备类命名空间 | 不相关 |  | 
| 3.3.3.5. 执行类体 | 不相关 |  | 
| 3.3.3.6. 创建类对象 | 不相关 |  | 
| 3.3.3.7. 元类的用途 | 不相关 |  | 
| 3.3.4. 定制实例和子类检查 | 不支持 |  | 
| 3.3.5. 模拟泛型类型 | 不支持 |  | 
| 3.3.6. 模拟可调用对象 | 支持 |  | 
| 3.3.7. 模拟容器类型 | 部分支持 | 某些魔法方法不支持(例如 __iter__) | 
| 3.3.8. 模拟数值类型 | 部分支持 | 交换操作数的魔法方法不支持 (__r*__) | 
| 3.3.9. with 语句上下文管理器 | 不支持 |  | 
| 3.3.10. 特殊方法查找 | 不相关 |  | 
| 3.4. 协程 | 不支持 |  | 
| 3.4.1. 可等待对象 | 不支持 |  | 
| 3.4.2. 协程对象 | 不支持 |  | 
| 3.4.3. 异步迭代器 | 不支持 |  | 
| 3.4.4. 异步上下文管理器 | 不支持 |  | 
| 4. 执行模型 | 不相关 |  | 
| 4.1. 程序结构 | 不相关 |  | 
| 4.2. 命名和绑定 | 不相关 | 名称在 TorchScript 中编译时绑定 | 
| 4.2.1. 绑定名称 | 不相关 | 参见 global和nonlocal语句部分 | 
| 4.2.2. 解析名称 | 不相关 | 参见 global和nonlocal语句部分 | 
| 4.2.3. 内置函数和受限执行 | 不相关 |  | 
| 4.2.4. 与动态特性的交互 | 不支持 | 无法捕获 Python 值 | 
| 4.3. 异常 | 部分支持 | 参见 try和raise语句部分 | 
| 5. 导入系统 | 不相关 |  | 
| 6. 表达式 | 不相关 | 参见表达式部分 | 
| 6.1. 算术转换 | 支持 |  | 
| 6.2. 原子 | 不相关 |  | 
| 6.2.1. 标识符(名称) | 支持 |  | 
| 6.2.2. 字面量 | 部分支持 | bytesliteral,imagnumber不支持
 | 
| 6.2.3. 带括号的形式 | 支持 |  | 
| 6.2.4. 列表、集合和字典的显示 | 部分支持 | 不支持:推导式中的 if 语句、异步迭代器 | 
| 6.2.5. 列表显示 | 支持 |  | 
| 6.2.6. 集合显示 | 不支持 |  | 
| 6.2.7. 字典显示 | 支持 | 使用关键字参数的 dict() 构造函数不起作用,字典推导式,字典解包 | 
| 6.2.8. 生成器表达式 | 不支持 |  | 
| 6.2.9. yield 表达式 | 不支持 |  | 
| 6.2.9.1. 生成器迭代器方法 | 不支持 |  | 
| 6.2.9.2. 示例 | 不支持 |  | 
| 6.2.9.3. 异步生成器函数 | 不支持 |  | 
| 6.2.9.4. 异步生成器迭代器方法 | 不支持 |  | 
| 6.3. 优先级 | 支持 |  | 
| 6.3.1. 属性引用 | 支持 |  | 
| 6.3.2. 索引 | 支持 |  | 
| 6.3.3. 切片 | 部分支持 | 不支持带步长的元组切片 | 
| 6.3.4. 调用 | 部分支持 | 不支持参数解包 / 关键字参数解包 | 
| 6.4. 等待表达式 | 不支持 |  | 
| 6.5. 幂运算符 | 支持 |  | 
| 6.6. 一元算术运算和位运算 | 部分支持 | 某些位运算符未针对基本类型实现(例如,~x其中x是一个int目前不支持) | 
| 6.7. 二元算术运算 | 部分支持 | 参见分隔符部分 | 
| 6.8. 移位运算 | 不支持 |  | 
| 6.9. 二元位运算 | 支持 |  | 
| 6.10. 比较 | 支持 |  | 
| 6.10.1. 值比较 | 部分支持 | 目前不支持字典相等性检查 | 
| 6.10.2. 成员资格测试运算 | 部分支持 | 不支持 TorchScript 类 | 
| 6.10.3. 身份比较 | 支持 |  | 
| 6.11. 布尔运算 | 支持 |  | 
| 6.12. 条件表达式 | 支持 |  | 
| 6.13. lambda 表达式 | 不支持 |  | 
| 6.14. 表达式列表 | 部分支持 | 不支持可迭代对象解包 | 
| 6.15. 评估顺序 | 支持 |  | 
| 6.16. 运算符优先级 | 支持 |  | 
| 7. 简单语句 | 支持 |  | 
| 7.1. 表达式语句 | 支持 |  | 
| 7.2. 赋值语句 | 支持 |  | 
| 7.2.1. 增强赋值语句 | 部分支持 | 参见分隔符部分 | 
| 7.2.2. 带注释的赋值语句 | 支持 |  | 
| 7.3. assert 语句 | 部分支持 | 异常消息不可自定义 | 
| 7.4. pass 语句 | 支持 |  | 
| 7.5. del 语句 | 不支持 |  | 
| 7.6. return 语句 | 支持 | 返回的其他一些特性(例如 try..finally 的行为)不受支持 | 
| 7.7. yield 语句 | 不支持 |  | 
| 7.8. raise 语句 | 部分支持 | 异常消息不可自定义 | 
| 7.9. break 语句 | 支持 | 返回的其他一些特性(例如 try..finally 的行为)不受支持 | 
| 7.10. continue 语句 | 支持 | 返回的其他一些特性(例如 try..finally 的行为)不受支持 | 
| 7.11. import 语句 | 不支持 |  | 
| 7.11.1. future 语句 | 不支持 |  | 
| 7.12. global 语句 | 不支持 |  | 
| 7.13. nonlocal 语句 | 不支持 |  | 
| 8. 复合语句 | 无关 |  | 
| 8.1. if 语句 | 支持 |  | 
| 8.2. while 语句 | 部分支持 | while..else 不受支持 | 
| 8.3. for 语句 | 部分支持 | for..else 不受支持 | 
| 8.4. try 语句 | 不支持 |  | 
| 8.5. with 语句 | 部分支持 | __exit__始终使用exc_type、exc_value和traceback设置为 None 调用,即使抛出了异常,并且__exit__的返回值被忽略。
 | 
| 8.6. 函数定义 | 不支持 |  | 
| 8.7. 类定义 | 不支持 |  | 
| 8.8. 协程 | 不支持 |  | 
| 8.8.1. 协程函数定义 | 不支持 |  | 
| 8.8.2. async for 语句 | 不支持 |  | 
| 8.8.3. async with 语句 | 不支持 |  | 
| 9. 顶层组件 | 不相关 |  | 
| 9.1. 完整的 Python 程序 | 不相关 |  | 
| 9.2. 文件输入 | 不相关 |  | 
| 9.3. 交互式输入 | 不相关 |  | 
| 9.4. 表达式输入 | 不相关 |  |