特定のクラスのサブクラスを受け入れるために、Python 3 を使用した型ヒントを許可したいと考えています。例えば:
class A:
pass
class B(A):
pass
class C(A):
pass
def process_any_subclass_type_of_A(cls: A):
if cls == B:
# do something
elif cls == C:
# do something else
次のコードを入力すると:
process_any_subclass_type_of_A(B)
PyCharm IDE のヒント「Expected type A, got Type[B] instead.」が表示されます。
ここでタイプヒントを変更して、A のサブタイプを受け入れるにはどうすればよいですか?
PEP 484 (「型が特定の引数型のサブタイプである式は、その引数にも受け入れられます。」) によると、私の解決策が機能するはずだと理解しています(cls: A)
か?