Class-qualified annotation expressions
还没有人认领这个 Issue。
- 主要语言
- Python
- 星标
- 1.8k
- 派生
- 302
- 平均合并
- 23 小时
- 30 天内合并 PR
- 8
描述
The wonderfully useful specification of type annotation expressions describes what kinds of expressions are valid type annotations.
I believe the spec does not include a case which type checkers support, although as we will see this comes down to semantics :)
class A:
class B:
pass
x: A.B = A.B()
The A.B annotation seems to fall under the name rule:
| name
(where name must refer to a valid in-scope class,
type alias, or TypeVar)
The spec helpfully continues:
Any leaf denoted as name may also be a qualified name (i.e., module '.' name or package '.' module '.' name, with any level of nesting).
The concept of a "qualified name" occurs only in this section, and the parenthetical explanation serves as it's most precise definition, as far as I can tell.
Should we extend the definition of "qualified name" to also include class members? Or maybe I should read the class as a "module" or a "package" and the existing definition suffices?
贡献指南
这个仓库没有索引到贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
从类型和注解表达式规范开始,尤其是 name 和 qualified name 的定义,并将其与 issue 中的 A.B 示例进行比较。检查现有类型检查器如何解释类限定注解;当规范明确说明是否包含类成员以及如何涵盖该示例时,即视为完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- python
- 领域
- documentation
- Issue 类型
- 文档
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100