Pythonの型ヒントには、クラス自体を指定するためのtyping.Typeというものがあります。これは、クラス自体に対しての型ヒントに使えるもので、例えば自作クラスや組み込みの型(クラス)自体を指し示すために使われます。

以下に、typing.Typeの使用例を示します。

from typing import Type

class Person:
    @staticmethod
    def get_cls_name() -> str:
        return "Person"

def get_cls_name(cls: Type[Person]) -> str:
    return cls.get_cls_name()

上記のコードでは、Personクラスにクラス名を返すstaticmethodを定義し、その外に、get_cls_name関数を定義しています。get_cls_name関数の引数clsPersonのインスタンスではなくPerson自身であり、返り値の型はstrである。

また、TypeVarと併用することも可能です。以下に、TypeVarと併用する場合の使用例を示します。

from typing import Type, TypeVar

Number = TypeVar("Number", int, float)

def to_number(str_number: str, type_: Type[Number]) -> Number:
    return type_(str_number)

上記のコードでは、to_number関数の引数str_numberの型はstrtype_intまたはfloat自身であり、type_int自身の際の返り値の型はinttype_float自身の際の返り値の型はfloatである。

以上、Pythonの型ヒントにおけるクラス自体を指定するtyping.Typeについて簡単に説明しました。より詳細な情報はPythonの公式ドキュメントをご覧ください。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です