导语:
本文主要介绍了关于python中super的使用注意的相关知识,希望可以帮到处于编程学习途中的小伙伴
1、super()只能用于新式类中
所谓新式类和旧式类,关键是看有没有基类,是正规类,比如class A(object),那么class A()自然是一个old-样式类。
# 单继承
class A(object):
def __init__(self, a, b):
self.a = a
self.b = b
def sayHello(self):
print('this is class A, a={},b={}'.format(self.a, self.b))
class B(A):
def __init__(self, a, b, c):
super(B, self).__init__(a,b)
self.c = c
def sayHello(self):
super(B, self).sayHello()
print('this is b call')
b = B('b','also b','test')
b.sayHello()
# this is class A, a=b,b=also b
# this is b call
2、super 其实和父类没有实质性的关联
多重继承下,super就没有那么简单了。
# 多重继承
class Base(object):
def __init__(self):
print('enter Base')
print('out Base')
class A(Base):
def __init__(self):
print('enter A')
super(A, self).__init__()
print('out A')
class B(Base):
def __init__(self):
print('enter B')
super(B, self).__init__()
print('out B')
class C(A, B):
def __init__(self):
print('enter C')
super(C, self).__init__()
print('out C')
c = C()
#enter C
#enter A
#enter B
#enter Base
#out Base
#out B
#out A
#out C
以上就是python中super的使用注意,希望能对大家有所帮助。
更多Python学习指路:
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ r在python中代表什么09/10
- ♥ 如何解决python和pygame不匹配的问题11/11
- ♥ python用什么方法列出一个文件夹下的所有文件?12/29
- ♥ 如何在python中关闭线程11/01
- ♥ 使用python3模块实现解压文件的方法01/09
- ♥ python3类方法和静态方法如何选择?哪个更好?01/13
内容反馈