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, 生成器, 协程, 异步生成器, 模块, 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. 列表、集合和字典的显示 |
部分支持 |
不支持:推导式 ifs,异步迭代器 |
6.2.5. 列表显示 |
支持 |
|
6.2.6. 集合显示 |
不支持 |
|
6.2.7. 字典显示 |
支持 |
dict() 构造函数与 kwargs 不兼容,字典推导式,字典解包 |
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. 调用 |
部分支持 |
不支持 Args 解包 / kwargs 解包 |
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. 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__ 始终使用设置为 None 的 exc_type 、exc_value 和 traceback 调用,即使引发了异常,并且 __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. 表达式输入 |
不相关 |
|