33

次の非常に単純なデータクラスがあります。

import dataclasses

@dataclasses.dataclass
class Test:
    value: int

クラスのインスタンスを作成しますが、整数の代わりに文字列を使用します。

>>> test = Test('1')
>>> type(test.value)
<class 'str'>

私が実際に望んでいるのは、クラス定義で定義されたデータ型への強制的な変換です。

>>> test = Test('1')
>>> type(test.value)
<class 'int'>

__init__メソッドを手動で作成する必要がありますか、またはこれを実現する簡単な方法はありますか?

4

5 に答える 5

1

ええ、簡単な答えは、自分で自分で変換を行うこと__init__()です。オブジェクトが欲しいので、これを行いますfrozen=True

型の検証については、Pydandic がそれを行うと主張していますが、まだ試していません: https://pydantic-docs.helpmanual.io/

于 2019-04-11T18:57:15.083 に答える