【发布时间】:2018-10-28 00:25:44
【问题描述】:
我得到一个 db 记录作为 sqlalchemy 对象,我需要在一些计算过程中查阅原始值,所以我需要原始记录直到最后。但是,当前的代码会在运行时修改对象,目前我不想对其进行过多的重构。
如何复制原始数据?正如预期的那样,deepcopy 似乎造成了问题。我绝对不喜欢手动复制所有字段,因为有人会在修改 db 对象时忘记更新此代码。
【问题讨论】:
标签: python python-2.7 sqlalchemy copy
我得到一个 db 记录作为 sqlalchemy 对象,我需要在一些计算过程中查阅原始值,所以我需要原始记录直到最后。但是,当前的代码会在运行时修改对象,目前我不想对其进行过多的重构。
如何复制原始数据?正如预期的那样,deepcopy 似乎造成了问题。我绝对不喜欢手动复制所有字段,因为有人会在修改 db 对象时忘记更新此代码。
【问题讨论】:
标签: python python-2.7 sqlalchemy copy
你可以在这里有很多选项来复制你的对象。我能想到的其中两个是:
__dict__ 将给出原始sqlalchemy 对象的字典,您可以使用.keys() 函数遍历所有属性,该函数将给出所有属性。inspect 模块和getmembers() 来获取定义的所有属性,并使用setattr() 方法设置所需的属性。【讨论】: