5

Transcrypt Python to JavaScript コンパイラのリリース 3.7.1 に取り組んでいます。リリース手順の一部は出荷テストで、Transcrypt は CPython と連続してテストされます。

以前は CPython 3.7 のベータ版で問題なく動作していましたが、リリースで問題が発生しました。

プログラム:

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 の回帰と見なして解決されるのを待つべきなのか疑問に思っています。

4

1 に答える 1