問題タブ [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.

0 投票する
1 に答える
49834 参照

python - 型ヒントのサブクラス

特定のクラスのサブクラスを受け入れるために、Python 3 を使用した型ヒントを許可したいと考えています。例えば:

次のコードを入力すると:

PyCharm IDE のヒント「Expected type A, got Type[B] instead.」が表示されます。

ここでタイプヒントを変更して、A のサブタイプを受け入れるにはどうすればよいですか?

PEP 484 (「型が特定の引数型のサブタイプである式は、その引数にも受け入れられます。」) によると、私の解決策が機能するはずだと理解しています(cls: A)か?

0 投票する
2 に答える
6586 参照

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 はほぼ最下部にあり、コードでマークされています。