我正在尝试查看是否可以将Python类抽象化,并且在研究时遇到了this Stack Overflow question。但是,似乎ABC
仅使子类需要使用@abstractmethod
装饰器来实现方法。它不禁止抽象类的直接实例化。要显示代码示例:
from abc import ABC
class Abstract(ABC):
pass
class Concrete(Abstract):
pass
if __name__ == '__main__':
# should raise exception, but doesn't
jawn = Abstract()
是否有一种方法可以彻底防止Python类的实例化,使其真正抽象化?