首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将列表中的所有对象转换为子类。

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

Stack Overflow用户
提问于 2014-04-16 09:14:11
回答 1查看 335关注 0票数 1

我有两个类,一个父类和一个继承自它的类。但是,在列表中,父类有任意数量的对象。我需要把他们都转化成孩子班。

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

代码语言:javascript
复制
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)

我很确定我可以用下面的行把objets 1乘以1转换成一个循环。

代码语言:javascript
复制
a.__dict__ = b.__dict__

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-16 09:45:48

您不应该使用a.__dict__ = b.__dict__,除非实例属性是动态添加的- __dict__只用于动态添加的对象。如果您确信类是纯python,并且内部对象属性的名称类似,则可以使用a.__class__=b.__class__

如果您能够创建child实例,一种比较简单的方法可能是定义一个从parent实例创建child实例的函数。您可以通过使用map或列表理解来避免循环:

代码语言:javascript
复制
def parent_to_child(parent):
    newchild= child()
    newchild.property= parent.property
    #...

list_of_children= map(parent_to_child, list_of_parents)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23104938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档