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, byte arrays, sets, frozen sets, generators, coroutines, async generators, modules, I/O objects, internal objects, slice objects (尽管支持切片), 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. 字典表示法 |
支持 |
不支持带有 kwargs 的 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. Await 表达式 |
不支持 |
|
6.5. 幂运算符 |
支持 |
|
6.6. 一元算术和按位运算 |
部分支持 |
部分按位运算符尚未为原始类型实现(例如,当 x 是 int 类型时,当前不支持 ~x ) |
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. 表达式输入 |
不相关 |
|