Python 3.11では、Self型が導入されました。この新機能は、メソッドが自分自身のクラスのインスタンスを返す場合に、そのメソッドの戻り値の型を注釈するために使用します。

from typing import Self

class Shape:
    def set_scale(self, scale: float) -> Self:
        self.scale = scale
        return self

上記の例では、set_scaleメソッドはShapeクラスのインスタンスを返します。このメソッドの戻り値の型を注釈するために、Self型が使用されています。

Self型は、TypeVarを使用したアプローチと同じ振る舞いをしますが、より簡潔で追いやすいです。これは、特にクラスメソッドや継承とメソッドチェーンを使用する際に役立ちます。

しかし、Self型を使用するときには注意が必要です。Self型は、クラスのメソッドが自分自身のクラスのインスタンスを返す場合にのみ使用できます。また、Self型はサブスクリプト可能ではないため、typing.NoReturnと同様の実装になります。

以上がPythonのSelf型の基本的な使い方とその利点です。この新機能を活用して、Pythonコードの可読性と保守性を向上させましょう。

投稿者 admin

コメントを残す

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