問題タブ [python-typing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 型ヒントのサブクラス
特定のクラスのサブクラスを受け入れるために、Python 3 を使用した型ヒントを許可したいと考えています。例えば:
次のコードを入力すると:
PyCharm IDE のヒント「Expected type A, got Type[B] instead.」が表示されます。
ここでタイプヒントを変更して、A のサブタイプを受け入れるにはどうすればよいですか?
PEP 484 (「型が特定の引数型のサブタイプである式は、その引数にも受け入れられます。」) によると、私の解決策が機能するはずだと理解しています(cls: A)
か?
python - タイピングを使用してPython 3でジェネリック型を継承する
Python 3.6 と mypy で入力する実験を行っています。次の 2 つの方法でインスタンス化できるエンティティ クラスを設計したいと考えています。
- 通常のイニシャライザを使用する (
p = Person(name='Hannes', age=27)
) - 状態オブジェクト ( ) から静的に
p = Person.from_state(person_state)
。
派生元のEntity
クラスには、汎用パラメーターとして状態クラスがあります。Person
ただし、mypy でコードを検証すると、Person.from_state
継承元のクラスから状態の型を取得しないというエラーが表示されます。
untitled2.py:47: エラー: "Entity" の "from_state" への引数 1 に互換性のない型 "UserState" があります。期待される「StateType」
から継承することでEntity[UserState]
、StateType
にバインドさUserState
れ、子クラスのメソッド シグネチャがそれに応じて更新されると考えました。
これは完全なコードです。で間違ったことをしていると思われる行に印を付けました?????
。行 47 はほぼ最下部にあり、コードでマークされています。