如何声明一个包含同时支持简单类型和属性的字段的协议?

col17t5w  于 2021-09-08  发布在  Java
关注(0)|答案(0)|浏览(185)

(相关但不重复:如何注解可实现为属性的属性?)
我想创建一个 Protocol ,其中字段可以由简单类型和属性实现。例如:

class P(Protocol):
    v: int

@dataclass
class Foo(P):
    v: int

class Bar(P):
    @property
    def v(self) -> int: # ERROR
        return

但是上面的代码没有类型检查。我该怎么修?
注意:我想解决这个问题而不重写 FooBar ,因为 FooBar 不是我实现的。
根据此问题,以下代码不是解决方案,因为 property 一个简单的成员有着微妙的不同语义。

class P(Protocol):
    @property
    def v(self) -> int: # declare as property
        ...

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题