gpt4 book ai didi

python - 将列表中的所有对象转换为子类。

转载 作者:太空宇宙 更新时间:2023-11-03 18:26:23 26 4
gpt4 key购买 nike

我有两个类,一个父类和一个继承自它的类。然而,在列表中我有任意数量的父类对象。我需要将它们全部转换为子类。

代码的真正简化版本如下所示:

class parent(object):
def __init__():
self.a = 1

class child(parent):
def __init__():
self.b = 2

list_of_objects = []

for x in range(0, 10)
a = parent()
list_of_objects.append(a)

我很确定我可以使用以下行在循环中将对象 1 乘 1 转换。

a.__dict__ = b.__dict__

但是有没有办法一次性转换整个列表?

最佳答案

您不应该使用a.__dict__ = b.__dict__ ,除非动态添加实例属性 - __dict__仅用于动态添加的对象。如果您确定这些类是纯 Python 并且内部对象属性的命名类似,您可以 a.__class__=b.__class__

如果您能够创建 child 的实例,一种更简洁的方法可能是定义一个创建 child 的函数。来自 parent 的实例实例。您可以使用 map 来避免循环或列出推导式:

def parent_to_child(parent):
newchild= child()
newchild.property= parent.property
#...

list_of_children= map(parent_to_child, list_of_parents)

关于python - 将列表中的所有对象转换为子类。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23104938/

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