[英]Python multi inheritance super keyword
为什么?
我想展示的是:
====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()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.