首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Python中将对象转换为子类?

在Python中将对象转换为子类?
EN

Stack Overflow用户
提问于 2009-02-28 00:34:11
回答 1查看 29.9K关注 0票数 42

假设我有一个不能更改的库函数,它生成一个类A的对象,并且我创建了一个继承自A的类B。

使用库函数生成B类对象的最直接方法是什么?

编辑-我在评论中被要求提供更多细节,所以这里是这样的:

PyTables是一个用Python语言处理分层数据集的包。我使用最多的是它管理部分在磁盘上的数据的能力。它提供了一个'Array‘类型,它只提供扩展切片,但我需要选择任意行。Numpy提供此功能-您可以通过提供与从中选择的数组具有相同长度的布尔数组来进行选择。因此,我想创建一个子类Array来添加这个新功能。

在更抽象的意义上,这是我以前考虑过的问题。通常的解决方案是已经建议的-为B创建一个构造函数,该构造函数接受A和其他参数,然后取出A的相关部分插入到B中。因为这似乎是一个相当基本的问题,所以我要求询问是否有我不知道的标准解决方案。

EN

回答 1

Stack Overflow用户

发布于 2009-02-28 01:40:07

如果子类的初始化器可以处理它,或者您编写了一个显式的升级器,就可以做到这一点。下面是一个示例:

代码语言:javascript
复制
class A(object):
    def __init__(self):
        self.x = 1

class B(A):
    def __init__(self):
        super(B, self).__init__()
        self._init_B()
    def _init_B(self):
        self.x += 1

a = A()
b = a
b.__class__ = B
b._init_B()

assert b.x == 2
票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/597199

复制
相关文章

相似问题

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