- 主题:如何实现运行时选择继承的类
有几个基类,A B C
都提供相同名字的函数实现
rr() ww()
现在需要实现一个子类,在运行时根据传入的参数决定自己继承哪个基类
这个要求可以实现吗?谢谢
--来自微水木3.5.8
--
FROM 114.87.75.*
运行时具体什么时候决定?
1. 程序启动时决定,以后不变:
if useBaseA:
base = A
else:
base = B
class MyClass(base):
pass
2. 运行过程中可变。略复杂,你确定要这么做吗?
3. 运行过程中,该类的每个对象“继承”的类也不同。同上。
【 在 Machael 的大作中提到: 】
: 有几个基类,A B C
: 都提供相同名字的函数实现
: rr() ww()
: ...................
--
FROM 114.86.95.*
eval万能:
x = 'A'
obj = eval(x)()
或者就
classMap = {'A': A, 'B': B}
obj = classMap.get(x)()
【 在 Machael (Keep Looking For) 的大作中提到: 】
: 有几个基类,A B C
: 都提供相同名字的函数实现
: rr() ww()
: ...................
--
FROM 114.242.94.*
已解决, 我在stackoverflow上搜到了方法, 基本等同于你第一种方法
谢谢
【 在 ilovecpp 的大作中提到: 】
: 运行时具体什么时候决定?
: 1. 程序启动时决定,以后不变:
: if useBaseA:
: ...................
--
FROM 121.37.50.*
这不就是工厂模型吗
【 在 Machael 的大作中提到: 】
: 有几个基类,A B C
: 都提供相同名字的函数实现
: rr() ww()
: ...................
--
FROM 219.137.190.*