具有相同名称的函数的类中的多重继承[重复]
Posted
技术标签:
【中文标题】具有相同名称的函数的类中的多重继承[重复]【英文标题】:Multiple inheretince in classes with functions that have the same name [duplicate] 【发布时间】:2022-01-22 14:15:42 【问题描述】:如果您有一个使用多重继承的类,并为一个函数使用两个同名的类,那么哪个函数优先?从我发现类声明中首先出现的函数优先。有没有比我现在拥有的更好的方法来调用第二个列出的类中的函数?
class test():
number = 10
def __init__(self, x, y, z):
self.x = x
self.y = y
self.z = z
self.something = z
def printnumber(self):
print(self.number)
class trial():
def __init__(self,a,b,c):
self.a = a
self.b = b
self.c = c
def printnumber(self):
print(self.c)
class check(test, trial):
def __init__(self, a, b, c,x,y,z):
trial.__init__(self ,a, b, c)
test.__init__(self, x,y,z)
def printnumber(self):
return trial.printnumber(self)
另外,只是好奇,在多个继承或一般类中,您在类标题中列出类的顺序是否重要?
【问题讨论】:
重命名函数之一? 【参考方案1】:搜索顺序基本上是深度优先,从左到右。
https://docs.python.org/3/tutorial/classes.html
但是,由于它引起的混乱,编写这样的代码通常是不好的形式。多重继承(除了非常有用的混合概念之外)是一种危险的做法,从长远来看很少有回报。
【讨论】:
以上是关于具有相同名称的函数的类中的多重继承[重复]的主要内容,如果未能解决你的问题,请参考以下文章
当在其层次结构中具有菱形继承的类的多重继承时,函数的模糊继承