python——继承

day10②

python自学,笔记分享

昨日补发——继承

单继承+多继承

用例子解释和联系

'''
继承 单继承+多继承
如果两个类是父子类关系,子类则会继承父类的属性和方法
化简代码
'''
# 父类A
class A(object):  # 继承object
    def __init__(self):
        self.num = 1
    def info_print(self):
        print(self.num)
# 子类B
class B(A):  # 继承A
    pass

result = B()
result.info_print()  # 打印1,确实继承了A

# 单继承和多继承: 2徒弟要继承师傅的技术+徒弟还可以跟学校学
#       当一个类有多个父类的时候,默认使用第一个父类的同名属性和方法
# 师傅类
class Master(object):
    def __init__(self):
        self.kongfu = '[你过来啊!]'
    def make(self):
        print(f'运用{self.kongfu}打架')

# 创建学校类
class School(object):
    def __init__(self):
        self.kongfu = '[学学学]'
    def make(self):
        print(f'用用{self.kongfu}')

# 徒弟类:继承师傅类和学校类(调用第一个)
class Prentice(Master, School):
    # 在子类中添加同名的属性和方法=独创 !!!先调用这个!!!(注意三个优先级)
    def __init__(self):
        self.kongfu = '[kakakaka]'
    def make(self):
        # 这个括号里不需要写self,因为前面有了,已经能接收到数据了
        self.__init__()  # 执行一下初始化,若是想也能调用父类的就必须写
        print(f'运用{self.kongfu}')

    def make_master_cake(self):  # 再次封装
        Master.__init__(self)  # 调用初始化
        Master.make(self)  # 调用父类方法,self一定要写确保接收到数据
    def make_school_cake(self):
        School.__init__(self)  #
        School.make(self)  # 这块的self一定要注意
# 若子类里有一个与父类同名同姓的就会调用子类的属性,但是若要求调用父类的呢?
# 一个人又会python又会c,这技能都要调用起来(方法写上面了)



daqiu = Prentice()
print(daqiu.kongfu)
daqiu.make()  # 打印独创的
daqiu.make_master_cake()  # 当三个都打印时,初始化就是必须的:因为如果不加后面的调用会显示上一个
daqiu .make_school_cake()

print(Prentice.__mro__)  # 查看类的继承层级

# 多层继承:子类也会老,子类要把技能给孙子,哈哈哈
# 徒孙类
class Tusun(Prentice):
    pass
xiao = Tusun()
xiao.make()  # 能完美调用,啦啦啦
xiao.make_school_cake()
xiao.make_master_cake()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值