問題タブ [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 - タイプを明示的にリストせずに、引数が同じタイプであることを確認するにはどうすればよいですか?
両方の引数が同じ型である限り、任意の型の 2 つの引数を受け入れる関数が必要であると仮定しましょう。mypyで静的にチェックするにはどうすればよいですか?
関数が既知の型の有限量を受け入れるだけでよい場合は、次のように簡単です。
このコードでは、 mypy は への引数f
が 2 つint
の 、2 つstr
の 、または の 2 つのリスト、int
または を返す引数ゼロの 2 つの関数であることを確認できint
ます。
しかし、事前に型がわからない場合はどうなるでしょうか。let f (a:'t) (b:'t) = ()
F# や OCamlに似たものが必要な場合はどうすればよいでしょうか? 単純に書くと有効なT = TypeVar('T')
ようになりますが、これは私たちが望んでいることではありません。f(1, "2")
python - 複数の戻り値の型に注釈を付ける方法は?
タイプ ヒントを使用して、常に aと aIterable
の 2 つの値を返す an を返す関数に注釈を付けるにはどうすればよいですか? ヒントは近いですが、戻り値の型をジェネレーターやその他の型の iterable ではなく、タプルに制限する点が異なります。bool
str
Tuple[bool, str]
foo()
次のように複数の値を返すために使用される関数に注釈を付けたいので、私はほとんど興味があります。
通常、次のような関数foo()
はreturn a, b
(タプルを返す) のようなことを行いますが、返されたタプルをジェネレーターやリストなどに置き換えるのに十分なほど柔軟な型ヒントが必要です。
python - (クラス インスタンスではなく) クラス オブジェクトである型に注釈を付ける方法は?
そのクラスのインスタンスではなくクラス オブジェクトを期待する関数の引数に注釈を付ける適切な方法は何ですか?
以下の例では、some_class
引数は型インスタンス (クラス) であると予想されますが、ここでの問題は、それtype
が広すぎることです:
some_class
特定のタイプ オブジェクトのセットが必要な場合は、使用type
してもまったく役に立ちません。モジュールには、これtyping
を行う Class ジェネリックが必要な場合があります。
上記の例でsome_class
は、 はFoo
、Bar
またはFaz
クラスであり、そのインスタンスではありません。some_class: Class[Foo]
有効なケースであるため、クラス ツリー内の位置は重要ではありません。したがって、
また
また
mypy、pytype、PyCharm などには問題ないはずです。
現在の実装 (Python 3.6 以前) でこれを行うにはどうすればよいですか?