我正在尝试将一个变量赋值给一个类的实例,使该变量属于同一类型。我希望在构造变量时使用实例本身。为了兼容继承,我希望将其类型提示为类Self
而不是类。
以下作品:
class Foo:
var: "Foo"
def bar(self) -> None:
self.var = self
但是,var
被标记为 类型,Foo
而不是Self
。我想要的是:
from typing import Self
class Foo:
var: Self
def bar(self) -> None:
self.var = self
在这种情况下,mypy 向我显示以下消息:
error: Incompatible types in assignment (expression has type "Foo", variable has type "Self") [assignment]
显然,self
不被视为类型Self
,而仅被视为类型Foo
。