gpt4 book ai didi

Python - 将一个对象的属性复制到另一个对象的正确方法是什么?

转载 作者:太空狗 更新时间:2023-10-29 18:21:41 26 4
gpt4 key购买 nike

我有两个类(class)。它们几乎相同,除了 2 个属性。我需要将所有属性从一个复制到另一个,我只是想知道是否有模式或最佳实践,我是否应该基本上这样做:

spam.attribute_one = foo.attribute_one
spam.attribute_two = foo.attribute_two

...等等。

最佳答案

您提供的代码是正确且安全的,避免了“意外地”绑定(bind)不应该绑定(bind)的属性。但是,如果您更喜欢自动化而不是安全性和正确性,您可以使用类似...的东西:

def blindcopy(objfrom, objto):
for n, v in inspect.getmembers(objfrom):
setattr(objto, n, v);

但是,我不会推荐它(由于第一段暗示的原因;-)。 OTOH,如果您知道要复制的属性的名称,那么以下内容就可以了:

def copysome(objfrom, objto, names):
for n in names:
if hasattr(objfrom, n):
v = getattr(objfrom, n)
setattr(objto, n, v);

如果您经常做这种事情,将此代码一次放在“实用程序”模块中对您来说绝对是一个胜利!

关于Python - 将一个对象的属性复制到另一个对象的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3818825/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com