关于python的多继承的一些思考,以及多继承时属性丢失问题的解决方法

最近在给孩子编写一款小游戏的时候发现了一个 问题,某些子类调用父类属性时会报错,提示未找到该属性。当时我很纳闷,就在网上搜索一些相关资料发现这方面的资料很少。所以今天就写下来 希望能帮到有需要的朋友。

ok,我们先随便写上几个类

class A():
	def __init__(self):
		self.aa = 11

class B():
	def __init__(self):
		self.bb = 22

class C(A,B):
	def __init__(self):
		self.cc = 33

c = C()
print(c.aa, c.bb, c.cc)

运行以后得到的提示为

Traceback (most recent call last):
  File "/Users/yansong/Desktop/fjdz-new/test.py", line 17, in 
    print(c.aa, c.bb, c.cc)
AttributeError: 'C' object has no attribute 'bb'
Process finished with exit code 1

这里提示没有bb这个属性,到这里我非常纳闷,明明已经继承了啊。

于是我去研究了一下python的继承逻辑。Python使用MRO(method resolution order方法解析顺序)解决基类搜索顺序问题。这里参考了https://blog.csdn.net/u013008795/article/details/90412084这篇文章

C3算法࿰

你可能感兴趣的:(python,python,继承)