【发布时间】:2021-03-23 05:34:35
【问题描述】:
class Base1:
def __init__(self,a):
self.a=a
def addition(self):
return self.a + self.a
class Base2:
def __init__(self,b):
self.b=b
def multipl(self):
return self.b*self.b
class Sub(Base1,Base2):
def __init__(self,a,b):
super().__init__(a,b)
H=Sub(4,5)
print(H.addition())
print(H.multipl())
TypeError: init () 接受 2 个位置参数,但给出了 3 个
好吧,当我这样做时,我所期望的会发生,为什么? "* args" 做什么来避免这个错误?
class Base1:
def __init__(self,a,*args):
super().__init__(*args)
self.a=a
def addition(self):
return self.a + self.a
class Base2:
def __init__(self,b,*args):
super().__init__(*args)
self.b=b
def multipl(self):
return self.b*self.b
class Sub(Base1,Base2):
def __init__(self,a,b):
super().__init__(a,b)
H=Sub(4,5)
print(H.addition())
print(H.multipl())
【问题讨论】:
-
stackoverflow.com/questions/3394835/use-of-args-and-kwargs 看看这个答案。可能对你有帮助:)
标签: python-3.x