私はタイプヒンティングで使用するためにPythonで自分のパラメータ化された型を作成したい:Pythonで独自の "パラメータ化された"型を作成するにはどうすればいいですか( `Optional [T]`など)?
class MaybeWrapped:
# magic goes here
T = TypeVar('T')
assert MaybeWrapped[T] == Union[T, Tuple[T]]
不自然な例を気にしません。これをどのように実装できますか?私はUnionとOptionalのソースを見ていましたが、私が避けたいと思っているかなり低レベルのハッカーのように見えます。
ドキュメントの唯一の提案は、example re-implementation of Mapping[KT,VT]
that inherits from Genericからのものです。しかし、その例は、クラスそのものよりも__getitem__
メソッドのほうがはっきりしています。
ありがとう、ここで 'TypeVar'を使用して私が逃したものです。ジェネリックスがこのように「ちょうどうまくいく」というのはかなり驚きです。 – shadowtalker