python - 如何将对象的类扩展到子类?
问题描述
我有a
class的实例A
,我想让它也成为 class 的实例B
(继承自A
)。
我已经尝试过了,但没有达到预期的效果:
class A:
def __init__(self):
self.a = 1
class B(A):
def __init__(self):
self.b = 2
a = A()
isinstance(a, A) # True
B.__init__(a)
isinstance(a, B) # False, I wished it was True...
我已经看到了这个答案,但我认为我的问题更笼统:这里只有方法 fromB
将适用于a
,但我想a
成为 的完整实例B
,即也具有成员变量等(好像a
是直接创建的作为 的一个实例B
,但继承A
的状态与 ) 完全相同a
。
我怎样才能做到这一点??如有必要,我不介意创建一个新实例,只要我最终可以恢复完全相同的状态即可。
编辑:我也看到了这个问题的答案,但他们要么只创建一个新实例B
并从中检索一个字段a
(这将很难扩展到A
具有许多属性的复杂类),要么只是设置a.__class__ = B
不创建B
.
解决方案
推荐阅读
- android - 我可以通过 Android App 中的 Google Play 一次购买多件商品吗?
- multithreading - thread_local 会有什么性能损失?
- android - 将 ScrollView 添加到我的 XML 布局文件后应用程序崩溃
- node.js - 如何在 Angular 应用程序中显示 PPT 预览?我不想使用 ngx-doc-viewer
- dynamic - 访问 Instagram 帐户的 dp 并在 Instagram 故事中动态显示
- python - Python datetime 模块和 timedelta 方法
- java - while 循环返回一个重复的随机值而不是一个新的随机值
- c++ - 编译器如何在编译时进行数据绑定?
- javascript - 根据父选择器选择自动更新选择器
- python - 从图像中提取线向量