Я хочу создать класс, который имеет некоторый вложенный класс, который определяет некоторый контракт в Python. Примером использования является типизированный объект конфигурации. Моя попытка сделать это ниже:
from typing import Mapping
from abc import ABCMeta, abstractmethod
class BaseClass(metaclass=ABCMeta):
# If you want to implement BaseClass, you must also implement BaseConfig
class BaseConfig(metaclass=ABCMeta):
@abstractmethod
def to_dict(self) -> Mapping:
"""Converts the config to a dictionary"""
Но, к сожалению, я могу создать экземпляр подкласса BaseClass
без реализации BaseConfig
:
class Foo(BaseClass):
pass
if __name__ == "__main__":
foo = Foo()
Есть ли способ заставить подкласс должен также реализовать внутренний класс?