抽象基类可以使用@abstractmethod
装饰器强制方法的所有子类实现。类字段也可以这样做吗
假设我们有以下课程:
from abc import ABCMeta, abstractmethod
class AbsHero(metaclass=ABCMeta):
@abstractmethod
def say_hello():
"""Hero greeting"""
class GoodHero(AbsHero):
def __init__(name: str):
self.name = name
def say_hello():
print('Hi, my name is ' + self.name + '.')
class SneakyHero(AbsHero):
def say_hello():
print("I am sneaky, I don't have a name")
我希望强制AbsHero
的所有子项都具有name
字段,或者至少是属性。现在两个子类都是有效的。我能做什么,使GoodHero
类工作良好,但SneakyHero
声明会导致失败
目前没有回答
相关问题 更多 >
编程相关推荐