|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
如果我要继承的基类是动态的(有时候是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)()
复制代码
|
|