我正在研究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/

10-12 20:27