我试图创建一个继承自超类中声明的元类的类,我确实这样做了:
from sqlalchemy import Column, String, create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
class Database(object):
"""
Class that holds all data models classes and functions
"""
def __init__(self, wenDbPath = "test.db"):
self.engine = create_engine('sqlite:///' + "c:/"+wenDbPath, echo=False)
self.Session = sessionmaker(bind=self.engine)
**self.Base** = declarative_base() # This returns a metaclass.
self.Base.metadata.create_all(self.engine)
self.session = self.Session()
class Element(**self.Base**):
__tablename__ = 'elements'
idNumber = Column(String(255), primary_key=True)
smallDiscription = Column(String(50), nullable=False)
longDiscription = Column(String())
webLink = Column(String())
def __init__(self, idNumber, smallDiscription, longDiscription, webLink):
self.idNumber = idNumber
self.longDiscription = longDiscription
self.smallDiscription = smallDiscription
self.webLink = webLink
def __repr__(self):
return "<Element ('%s : %s')>" % (self.idNumber, self.smallDiscription)
Python给了我以下信息
类元素(self.Base):NameError:名称'self'未定义
我怎么能做这样的事情?
先感谢您。