from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.ext.declarative import declared_attr import sqlalchemy from abc import ABCMeta, abstractmethod Base = declarative_base() class IInterface: __metaclass__ = ABCMeta @abstractmethod def getIndex(self): raise NotImplementedError class NgoBase(IInterface): def __init__(self): print(self) @declared_attr def __tablename__(cls): return cls.__name__.lower() #class TestClass(Base, NgoBase): # EID = sqlalchemy.Column(sqlalchemy.Integer, primary_key=True, nullable=False) # def getIndex(self): # return self.EID