Estou tentando atribuir uma variável a uma instância de uma classe de forma que a variável seja do mesmo tipo. Quero usar a própria instância na construção da variável. Para ser compatível com herança, quero usar a sugestão de tipo como, Self
em vez da classe.
As seguintes obras:
class Foo:
var: "Foo"
def bar(self) -> None:
self.var = self
No entanto, var
está marcado como sendo do tipo , Foo
em vez de Self
. O que eu quero é:
from typing import Self
class Foo:
var: Self
def bar(self) -> None:
self.var = self
Neste caso, o mypy me dá a seguinte mensagem:
error: Incompatible types in assignment (expression has type "Foo", variable has type "Self") [assignment]
Claramente, self
não é considerado como sendo do tipo, Self
mas somente do tipo Foo
.