基类动态修改的问题
如果我要继承的基类是动态的(有时候是A,有时候是B),我应该如何部署我的代码,以便基类可以随意修改。答:你可以先为基类定义一个别名,在类定义的时候,使用别名代替你要继承的基类。因此,当你想要改变基类的时候,只需要修改别名赋值的那个语句即可。顺便说一下,当你的资源是视情况而定的时候,这个小技巧很管用。
BaseAlias = BaseClass# 为基类取别名
class Derived(BaseAlias):
def meth(self):
BaseAlias.meth(self)# 通过别名访问基类
...
什么叫做 ''因此,当你想要改变基类的时候,只需要修改别名赋值的那个语句即可。''?看不懂啊.
如上述代码,假如我现在想要修改基类了,怎么操作?再给修改后的基类取一个名然后赋值吗?我记得多取一个名字不是指向的是同一个内存地址吗,这里没用copy方法啊?修改完基类,别名对应的代码不变吗? 本帖最后由 nahongyan1997 于 2021-6-23 16:14 编辑
这样就好了
class A:
def __init__(self):
print(1)
class B:
def __init__(self):
print(2)
def create_class(Base):
class C(Base):
def __init__(self):
super().__init__()
return C
app=create_class(A)()
app=create_class(B)()
页:
[1]