【发布时间】:2011-06-20 20:19:40
【问题描述】:
用例是我有一个远程(读取速度慢)数据库,我通过 ORM 映射类从中获取一些数据。
我想将非 db 临时数据与 ORM 数据一起存储,并且我不想用一堆临时属性污染映射的类命名空间(其他人使用),这样我就可以存储一些对象具体数据。我真正想做的是将这些用作字典的键。
我见过this thread所以我知道它可以做到,但我不喜欢这个例子:
def __hash__( self ):
return id( self ) if self.id is None else hash( self.id )
因为我的用例包括一个 db set auto_increment 主键,它在刷新后才会存在。可能改变哈希是哈希的禁忌之一,我想避免它。
如果我在__hash__ 中添加同花顺,我可以尝试修复它,但感觉副作用太大,不是一个好主意。
所以,问题是:有没有一种好方法可以使用 ORM 映射的类实例作为 dict 的键,或者是否有另一种/更好的方法可以将临时数据与对象关联而不会污染它的命名空间?
【问题讨论】:
标签: python sqlalchemy