make Base classes more based in python

#671
Raw
Author
socdev
Created
Feb. 12, 2023, 11:19 p.m.
Expires
Never
Size
412 bytes
Hits
15
Syntax
Python
Private
No
# library.py


class BaseMeta(type):
    def __new__(cls, name, bases, body):
        if not "bar" in body:
            raise TypeError("derived class must implement a bar() function")
        return super().__new__(cls, name, bases, body)


class Base(metaclass=BaseMeta):
    def foo(self):
        # bar() function gets implemeted by child class
        return self.bar()