Metaclasses can ensure that all subclasses meet specific criteria.
class InterfaceMeta(type):
def __new__(cls, name, bases, dct):
if "execute" not in dct:
raise TypeError(f"Class {name} must define an 'execute' method.")
return super().__new__(cls, name, bases, dct)
class Base(metaclass=InterfaceMeta):
def execute(self):
pass # Required method
class Derived(Base):
def execute(self):
print("Executing Derived")
Derived().execute() # Works fine
# Uncommenting the following will raise an error:
# class InvalidDerived(Base):
# pass