(相关但不重复:如何注解可实现为属性的属性?)
我想创建一个 Protocol
,其中字段可以由简单类型和属性实现。例如:
class P(Protocol):
v: int
@dataclass
class Foo(P):
v: int
class Bar(P):
@property
def v(self) -> int: # ERROR
return
但是上面的代码没有类型检查。我该怎么修?
注意:我想解决这个问题而不重写 Foo
及 Bar
,因为 Foo
及 Bar
不是我实现的。
根据此问题,以下代码不是解决方案,因为 property
一个简单的成员有着微妙的不同语义。
class P(Protocol):
@property
def v(self) -> int: # declare as property
...
暂无答案!
目前还没有任何答案,快来回答吧!