Python中super().__init__()用法

super().init()用法:

推荐使用的派生方法:super().__init__()

--super()的属性查找顺序是从当前位置开始找,根据mro列表,当前没有就往上找。

super() 函数是用于调用父类的一个方法。

super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,

但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。

MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表。


--super(),会得到一个特殊的对象,该对象就是专门用来
访问父类中的属性的(严格按照继承的关系)

--super().__init__(),此处__init__(),
括号中不需要传值self。

--在Python2中,super()的完整用法是super(自己类名,self),
在Python2中需要写完整,而Python3中可以简写为super()。

样例使用:

使用super().init()方法,主要继承父类构造函数内容,子类在父类的基础上补充

class A():
    def __init__(self,name,age) -> None:
        self.name = name
        self.age = age
    def name1(self,name):
        print("name is %s"%name)
    def age1(self,age):
        print("age is %s"%age)

class B(A):
    def __init__(self, name, age,sex) -> None:
        super().__init__(name, age)
        self.sex = sex
    def info(self,name,age):
        self.name1(name)
        self.age1(age)
    def sex(self,sex):
        print("sex is %s"%sex)

p = B("张三","11","男")
# p.age1("11")
# p.name1("lisi")
p.info("lisi","22")
  • 输出信息:
name is lisi
age is 22
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值