我正在研究Transcrypt Python到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回归并等待其解决。
最佳答案
从the documentation:
因此,这似乎是有意更改。
关于python - 数据类行为的变化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52099029/