2014-02-12 70 views
0

我正在關注this python教程。我在一個模塊中定義了User類,這樣我就不必重新輸入它,如果我重新執行該教程(這總會在教程中發生)。如何將這段代碼包裝到python模塊中?

這裏是我的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 

我應該在哪裏定義庫,使用戶模塊看到它?一個真正的pythonista如何去做這件事?

回答

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試圖從申報Base

子類的類 User