====== Python Typing ====== Devolver el tipo de la misma clase: from typing import Self class Foo: def returns_self(self) -> Self: return self Alias de tipo: from typing import TypeAlias Factors: TypeAlias = list[int] Definición de un tipo (en este caso self): from typing import TypeVar Self = TypeVar("Self", bound="Foo") class Foo: def returns_self(self: Self) -> Self: return self Several types: Union[Union[int, str], float] == Union[int, str, float] Union[int] == int Type or None: ''Optional[X]'' is equivalent to ''X | None'' (or ''Union[X, None]''). Optional[str] Class type: class ShopifyPostView(MethodView): shopify_request_schema: t.Union[ t.Type[ShopifyPaymentsRequest], t.Type[ShopifyRefundsRequest], ] = None Object of the previous class type: ShopifyRequestClass: t.Type = t.Optional[ t.Union[ t.Type[ShopifyPaymentsRequest], t.Type[ShopifyRefundsRequest], ] ] ShopifyRequest = t.Type[ShopifyRequestClass] ====== Links ====== * https://towardsdatascience.com/12-beginner-concepts-about-type-hints-to-improve-your-python-code-90f1ba0ac49