强制子类实现 属性 python
force subclass to implement property python
尝试了 force-implementing-specific-attributes-in-subclass
的答案
但是不起作用。此代码仍然通过且没有错误。
#python version: 3.8.1
from abc import ABC, abstractmethod
class A(ABC):
@property
@abstractmethod
def pr(self):
return 0
class B(A):
def pr(self):# not a property.
return 5
b = B()
print(b.pr())
那么如何强制子类实现特定的属性(pr 如上所述)?
代码没有错误地通过了,因为你在子class中给出了抽象方法的具体实现,看起来(不确定)它是唯一的东西abc
关心。此外,如果您覆盖,则无法自动应用来自父 class 的相同装饰器,您必须重复 属性 装饰器语法。
我发现的最好的线程是 and this。请完整阅读。
另外,最近有个Pythonbug,貌似关了没解决(还是重开?)。也在那里阅读完整的线程。有趣且相关。
尝试了 force-implementing-specific-attributes-in-subclass
的答案但是不起作用。此代码仍然通过且没有错误。
#python version: 3.8.1
from abc import ABC, abstractmethod
class A(ABC):
@property
@abstractmethod
def pr(self):
return 0
class B(A):
def pr(self):# not a property.
return 5
b = B()
print(b.pr())
那么如何强制子类实现特定的属性(pr 如上所述)?
代码没有错误地通过了,因为你在子class中给出了抽象方法的具体实现,看起来(不确定)它是唯一的东西abc
关心。此外,如果您覆盖,则无法自动应用来自父 class 的相同装饰器,您必须重复 属性 装饰器语法。
我发现的最好的线程是
另外,最近有个Pythonbug,貌似关了没解决(还是重开?)。也在那里阅读完整的线程。有趣且相关。