我正在开发Transcrypt Python to JavaScript 编译器的 3.7.1 版。发布过程的一部分是出货测试,其中 Transcrypt 使用 CPython 背靠背进行测试。
它过去可以在 CPython 3.7 的 beta 版本中完美运行,但在发布时出现了问题。
该程序:
from dataclasses import dataclass
from typing import ClassVar
@dataclass
class Test:
x: ClassVar = 10
y: int = 10
t = Test ()
t.x = 20
print (repr (t))
用于打印(使用 CPython):
Test(x=20, y=10)
但随着发布它打印(再次仅使用 CPython):
Test(y=10)
所以它从表示中省略了类变量 x。谁能告诉我这种改变是否是故意的,我在哪里可以找到证明它合理的讨论?
随着这一变化,Transcrypt 的行为与我不想要的 CPython 不同。所以我想知道我应该适应 Transcrypt 还是应该考虑这是一个 CPython 回归并等待它被解决。