小编use*_*007的帖子

SQLAlchemy在模型中自定义本地属性

我定义了一个简单的模型,并在类中添加了一些非SQL相关的属性.

如果属性是int或string类型的东西正在工作.但如果它是字典或列表类型,那么神奇地在模型类的所有不同实例上使用相同的列表.

例:

# Sample model class
class TestClass(Base):
   # SQL Mappings   
   __tablename__ = 'test1'

   pid = Column("id", Integer, primary_key=True)
   name = Column('name', String)

   # Non SQL related attributes
   works_var = 0
   works_not_var = []
   # ...
Run Code Online (Sandbox Code Playgroud)

在查询处理检索到的TestClass实例之后的其他地方

my_test_class.works_not_var.append("testval1")
my_test_class2.works_not_var.append("testval2")
Run Code Online (Sandbox Code Playgroud)

不知何故,两个附加值最终都在同一个列表中:

print id(my_test_class.works_not_var)
print id(my_test_class2.works_not.var)
Run Code Online (Sandbox Code Playgroud)

我的是一样的.但它适用于"works_var".我有不同的.

python scope sqlalchemy

3
推荐指数
1
解决办法
2673
查看次数

标签 统计

python ×1

scope ×1

sqlalchemy ×1