Python多继承超级关键字



为什么?

我想展示的是:

====User Data====
User Name : Tom
User Age : 22
User Address : shanghai

小贴士:看起来你的帖子大多是代码;请添加更多详细信息。所以,

class A:
def __init__(self, userName=''):
self.userName = userName
def showInfo(self):
print(f'User Name:{self.userName}')

class B:
def __init__(self, userAge=0):
self.userAge = userAge
def showInfo(self):
print(f'User Age:{self.userAge}')

class C(A, B):
def __init__(self, userName='', userAge=0, userAddress=''):
super(C, self).__init__(userName)
super(C, self).__init__(userAge)
self.userAddress = userAddress
def showInfo(self):
print('====User Data====')
super(C, self).showInfo()
super(C, self).showInfo()
print(f'User Address:{self.userAddress}')
# why User Name 22 ?
# ====User Data====
# User Name:22
# User Name:22
# User Address:shanghai
tom = C('Tom', 22, 'shanghai')
tom.showInfo()

试试这个:

class A:
def __init__(self, userName=''):
self.userName = userName
def showInfo(self):
print(f'User Name:{self.userName}')

class B:
def __init__(self, userAge=0):
self.userAge = userAge
def showInfo(self):
print(f'User Age:{self.userAge}')

class C(A, B):
def __init__(self, userName='', userAge=0, userAddress=''):
A.__init__(self, userName)
B.__init__(self, userAge)
self.userAddress = userAddress
def showInfo(self):
print('====User Data====')
A.showInfo(self)
B.showInfo(self)
print(f'User Address:{self.userAddress}')
tom = C('Tom', 22, 'shanghai')
tom.showInfo()

最新更新