开发者社区> 问答> 正文

在python SQLAlchemy模型中,为什么某些属性被初始化两次?

在这段代码中:

class Page(Base):
  __tablename__ = 'page'
  id = Column(Integer, primary_key=True)
  name = Column(Text, unique=True)
  data = Column(Text)

  def __init__(self, name, data):
    self.name = name
    self.data = data

这是一个模型,在金字塔框架(Python的框架),并将于SQLAlchemy的,以后使用的名称和数据初始化两次:

name = Column... # First assignments.
self.name = name # Second time assignments.

在金字塔的教程中,根据赋值运算符不能在python中重载的事实,是否需要“名称=列(...)”?还是我完全错了,name = Column(...)有一些特殊含义?

展开
收起
祖安文状元 2020-02-23 15:40:21 768 0
1 条回答
写回答
取消 提交回答
  • 外部作用域声明了一个有利于该类的字段。内部范围将对象的字段初始化为特定值。

    name = Column(...)
    
    

    正在描述Page该类的成员之一(“ Page由称为' name',... 的字段组成),而

    self.name = name
    
    

    正在将的一个特定实例初始化Page为一个特定值。(“ Page()名称为” "framistan")。

    分享改善这个答案

    2020-02-23 15:40:33
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载