Python 语言参考覆盖范围
这是https://docs.python.org/3/reference/中列出的特性的1:1映射及其在TorchScript中的支持情况。分类如下:
部分 |
状态 |
注意 |
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. 列表、集合和字典的显示 |
部分支持 |
不支持:comprehension ifs, 异步迭代器 |
6.2.5. 列表显示 |
支持 |
|
6.2.6. 集合显示 |
不支持 |
|
6.2.7. 字典显示 |
支持 |
使用 kwargs 的 dict() 构造函数不起作用,字典推导式,字典解包 |
6.2.8. 生成器表达式 |
不支持 |
|
6.2.9. 生成表达式 |
不支持 |
|
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. Await 表达式 |
不支持 |
|
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. 断言语句 |
部分支持 |
异常消息不可自定义 |
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. 未来声明 |
不支持 |
|
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. 异步for语句 |
不支持 |
|
8.8.3. async with 语句 |
不支持 |
|
9. 顶级组件 |
不相关 |
|
9.1. 完整的Python程序 |
不相关 |
|
9.2. 文件输入 |
不相关 |
|
9.3. 交互式输入 |
不相关 |
|
9.4. 表达式输入 |
不相关 |
|