键入被子类中的属性覆盖的类成员

问题描述 投票:0回答:1

这是我所拥有的示例代码:

class A:
  value: int

class B(A):
  @property
  def value(self) -> int:
     return 3

动态地来说,这工作得很好,但是 Pyright 抱怨说

Type "property" cannot be assigned to type "int"

有没有办法正确输入这个?我希望能够在

A
的其他子类的方法中设置值。

谢谢!

python python-3.x inheritance types properties
1个回答
0
投票

Pyright 的抱怨是正确的 -

value
中的类型与
A
中的类型不同,这会破坏 LSP。要键入属性而不实现它,您可以这样做:
B

© www.soinside.com 2019 - 2024. All rights reserved.