python中super().__init__()

Sally ·
更新时间:2024-09-20
· 853 次阅读

super().__init__() 1、子类构造函数调用super().__init__()1.1、第一个直接继承父类,可以调用name1.2、第二个继承自父类,覆盖初始化化def init,增加属性age,不能调用name属性1.3、第三个继承自父类,覆盖初始化化def init,并继承初始化属性name,可以调用2、继承顺序3、python2和3的区别 1、子类构造函数调用super().init()

例:
在这里插入图片描述
在这里插入图片描述

1.1、第一个直接继承父类,可以调用name

在这里插入图片描述

1.2、第二个继承自父类,覆盖初始化化def init,增加属性age,不能调用name属性

在这里插入图片描述

1.3、第三个继承自父类,覆盖初始化化def init,并继承初始化属性name,可以调用

在这里插入图片描述

2、继承顺序 class A: def __init__(self): print('A') class B(A): def __init__(self): print('B') super().__init__() class C(A): def __init__(self): print('C') super().__init__() class D(A): def __init__(self): print('D') super().__init__() class E(B, C): def __init__(self): print('E') super().__init__() class F(C, D): def __init__(self): print('F') super().__init__() class G(E, F): def __init__(self): print('G') super().__init__()

在这里插入图片描述
这里我们会发现G继承自E, F是并列的,初始化的时候不会先把E初始化完毕才初始化F

原文链接:https://blog.csdn.net/paopaohll/article/details/83063349

3、python2和3的区别

Python3.x 和 Python2.x 的一个区别: Python 3 可以使用直接使用 super().xxx 代替 super(Class, self).xxx :

Python3.x 实例:

class A: def add(self, x): y = x+1 print(y) class B(A): def add(self, x): super().add(x) b = B() b.add(2) # 3

Python2.x 实例:

#!/usr/bin/python # -*- coding: UTF-8 -*- class A(object): # Python2.x 记得继承 object def add(self, x): y = x+1 print(y) class B(A): def add(self, x): super(B, self).add(x) b = B() b.add(2) # 3
作者:int().a



super init Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号