为了账号安全,请及时绑定邮箱和手机立即绑定

【2023年】第53天 super函数以及多重继承

标签:
Python

一、super函数

  • python子类继承父类的方法而使用的关键字,当子类继承父类后,就可以使用父类的方法了
# coding:utf-8

class Parent(object):
    def __init__(self, p):
        print('hello i am parent %s' % p)


class Child(Parent):
    def __init__(self, c, p):
        super(Child, self).__init__('p')
        print('hello i am child %s' % c)


if __name__ == "__main__":
    c = Child(c='Child', p='Parent')
  • 这里需要注意的是super函数可以传入参数,也可以不传入参数,但是为了更好的兼容python2的语法结构,所以我们尽量使用传入参数的写法。

二、类的多重继承

  • 可以继承多个基类/父类。
class Child(Parent1, Parent2, Parent3 ...)
将被继承的类放入子类的参数位中,用逗号隔开
从左向右依次继承
# coding:utf-8

# 1 2 个父类
class Tool(object):
    def work(self):
        return 'tool work'

    def car(self):
        return 'car will run'


class Food(object):
    def work(self):
        return 'food work'

    def cake(self):
        return 'i like cake'


# 继承父类的子类
class Person(Tool, Food):
    pass


if __name__ == "__main__":
    p = Person()
    p_car = p.car()
    p_cake = p.cake()
    print(p_car)
    print(p_cake)

    p_work = p.work()
    print(p_work)
    print(Person.__mro__)  # 查看完整的继承链
  • 首先我们定义两个父类,Tool和Food。
  • 然后在两个父类下都定义work函数。
  • 定义子类,继承于两个父类。
  • 实例化后可以调用到父类中的函数。
  • 当子类中进行多重继承的时候把任何一个父类写到前面的时候就会先继承这个父类。
  • 可以使用__mro__查看Person子类的继承链。
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消