Maya 2024 & 2022 失落的 type hints, Self

Maya Python 3 沒有 typing.Self

Python 3.11 引入了 Self, 用來在 type hints 中代指物件自身. 但是 Maya 2024 用的 Python 3.10 沒支援, 要透過 typing_extensions:

1
from typing_extensions import Self

Maya 2022(Python 3.7) 則是完全沒有支援, 得使用 TypeVar 來定義, i.e.

1
2
3
4
5
6
from typing import TypeVar

T = TypeVar('T', bound='Foo')
class Foo:
    def bar(self: T) -> T:
        return self.__class__()