Python 3で、メソッドの型をエンクロージングクラスの型ヒントとして指定する方法は?

PYTHON3 チュートリアル

Pythonでの型ヒントの使用方法

Pythonの型ヒントは、コードの可読性と保守性を向上させるために役立ちます。特にクラス内でメソッドを定義する際に、エンクロージングクラス自身の型を引数や戻り値として使用することがあります。以下に、その具体的な方法とサンプルコードを示します。

サンプル1: 自クラスのインスタンスを返すメソッド

class MyClass:
    def factory(cls) -> 'MyClass':
        """クラスメソッドで自クラスの新しいインスタンスを返す"""
        return cls()

# 使用例
instance = MyClass.factory()
print(type(instance))  # 

サンプル2: エンクロージングクラスの型を引数にとるメソッド

class Node:
    def add_child(self, child: 'Node') -> None:
        """子ノードを追加するメソッド"""
        # ここで実際に子ノードを追加する処理を行う
        pass

# 使用例
root = Node()
child = Node()
root.add_child(child)

サンプル3: エンクロージングクラスの型を使った比較メソッド

class Product:
    def __init__(self, price: float):
        self.price = price

    def is_more_expensive(self, other: 'Product') -> bool:
        """他の商品と比較して高価かどうかを返す"""
        return self.price > other.price

# 使用例
product1 = Product(1000)
product2 = Product(500)
print(product1.is_more_expensive(product2))  # True

このように、Pythonの型ヒントを用いることで、メソッドの引数や戻り値がどのような型であるべきかを明確に示すことができます。これにより、エラーの発生を防ぐだけでなく、他の開発者がコードを理解しやすくなります。

購読
通知
0 Comments
Inline Feedbacks
View all comments