Python:如何将对象从基类提升为派生类?

mre*_*opy 1 python

希望这不是太基础,但......

假设我有一个基类pa(),并且我派生了从基类继承的类pai(),paj()等.

我想从基类pa()实例化一个对象:

>>> from pamod import *
>>> mypa = pa()
>>> mypa
<pamod.pa object at 0x28d4fd0>
>>>
Run Code Online (Sandbox Code Playgroud)

...然后根据某些操作将它(强制转换)推广到派生类:

>>> mypa.do(this)  
>>> mypa
<pamod.pai object at 0x28d4fd0>
>>>
Run Code Online (Sandbox Code Playgroud)

基于"this"的值,mypa成为pai等的对象.

我知道我可以分配给对象了__class__.

迈帕足球俱乐部.__class__=派

但是我想知道这是否真的是最好的方法.

根据我的方案,每个pai(例如)的实例都将作为基类pa的一个实例开始生活,所以pai__init__方法可能会以某种方式超载,我猜.

这个 讨论.

彼得

Ign*_*ams 5

这是一种糟糕的方法,因为您必须自己处理新属性的初始化.在子代码中编写一个类方法,该方法返回一个复制了相应属性的新实例.