|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
根据小甲鱼课后习题说的,一个类如果要继承的是动态基类(有时候继承A,有时候继承B),那么可以通过对基类起别名,然后让这个类去继承别名,从而要更改基类的时候去更改别名的赋值语句就可以,根据实验我发现不可行,具体如下:- class A:
- def printA(self):
- print('A')
- B=A
- class C(B):
- pass
- c=C()
- c.printA()
- >>> A #运行结果是A
- class D:
- def printD(self):
- print('D')
- B=D #把类D赋值给B
- c.printD()
- >>># 报AttributeError
复制代码 以上看来通过简单的别名不能够完成动态基类的继承啊
论坛中没有检索到动态基类检索的帖子,求解答
本帖最后由 LargeCat 于 2018-3-5 19:12 编辑
- class D:
- def print():
- print('D')
- class A():
- def print():
- print('A')
-
-
- x=input('input A/D: ')
- if x=='A':
- B=A #把类A赋值给B
- elif x=='D':
- B=D #把类D赋值给B
- class C(B):
- pass
-
- C.print()
复制代码
|
|