我有一个类似的类
from abc import ABC
class AbstractFoo(ABC):
# Subclasses are expected to specify this
# Yes, this is a class attribute, not an instance attribute
bar: list[str] = NotImplemented
# for example
class SpecialFoo(AbstractFoo):
bar = ["a", "b"]
但这感觉并不是特别干净,也许有点令人困惑。重要的是,bar
属性没有被标记为抽象,因此仍然可以在不指定的情况下实例化它。有没有更好的方法来实现类似的行为?
只是不指定值,将其保留为注释?
from abc import ABC
class AbstractFoo(ABC):
bar: list[str]
class SpecialFoo(AbstractFoo):
bar = ["a", "b"]