我正在关注this python教程。我在模块中定义了User类,这样如果我重新执行教程(在教程中似乎总是会发生),我就不必重新键入它。
这是我定义模块的user.py文件:
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
fullname = Column(String)
password = Column(String)
def __repr__(self):
return "<User(name='%s', fullname='%s', password='%s')>" % (self.name, self.fullname, self.password)
在python解释器中,我写了以下内容:
>>> from sqlalchemy.ext.declarative import declarative_base
>>> Base = declarative_base()
>>> from user import user //NameError: name 'Base' is not defined
我应该在哪里定义Base以便用户模块看到它?一个真正的pythonista将如何解决这个问题?
答案 0 :(得分:1)
user.py
需要import
它所依赖的一切,或者它不会知道它(即使其他模块也这样做)。所以:
user.py
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
fullname = Column(String)
password = Column(String)
def __repr__(self):
return "<User(name='%s', fullname='%s', password='%s')>" % (self.name, self.fullname, self.password)
您获得的NameError
是user
尝试从User
Base
的时候