Wie ist ein Instanzattribut des gleichen Typs wie der Instanztyp?
Posted: 29 Apr 2025, 13:44
Ich versuche, einer Klasse einer Klasse eine Variable zuzuweisen, so dass die Variable vom gleichen Typ ist. Ich möchte die Instanz selbst bei der Konstruktion der Variablen verwenden. Um mit der Vererbung kompatibel zu sein, möchte ich es eher als Selbst als in der Klasse eingeben.
Var wird jedoch als vom Typ foo anstelle von self gekennzeichnet. Was ich will ist: < /p>
Eindeutig wird Self nicht als vom Typ self angesehen, sondern nur vom Typ foo .
Code: Select all
class Foo:
var: "Foo"
def bar(self) -> None:
self.var = self
Code: Select all
from typing import Self
class Foo:
var: Self
def bar(self) -> None:
self.var = self
< /code>
In diesem Fall gibt mir MyPy die folgende Nachricht: < /p>
error: Incompatible types in assignment (expression has type "Foo", variable has type "Self") [assignment]