zoukankan      html  css  js  c++  java
  • 继承/多重继承/鸭子函数/supper

    1.假设你正在参与一个魔幻类角色游戏的开发,公司需要你为这个游戏设计两个角色的类:

    两个中有大量重复代码,是否能够只写一次?    抽象出一个更抽象的类,放公共代码

    继承的意义是什么?  重用代码,方便代码的管理和修改

    继承是复制变量空间吗?  不是

    class Role:
        def __init__(self,name,level,blood):
            self.name=name
            self.level=level
            self.blood=blood
        def __str__(self):
            return "{cls}({name},{level},{blood})".format(cls=__class__.__name__,
                                                          name=self.name,
                                                          blood=self.blood,
                                                          level=self.level)
        def fight(self):
            raise NotImplementedError('必须在子类中实现')
    
    class SwordMan(Role):
        def __init__(self,name,level,blood,attrack_power):
            Role.__init__(self,name,level,blood)
            self.attrack_power=attrack_power
    
        def fight(self):
            print('物理攻击!')
    
    class Magician(Role):
        def __init__(self,name,blood,level,magic_power):
            Role.__init__(self,name,blood,level)
            self.magic_power=magic_power
        def fight(self):
            print("魔法攻击!")
        def cure(self):
            print("治疗!")
    
    s=SwordMan('litao',20000,2000,'技击')
    print(s)
    s.fight()

    重用父类的 __init__

    鸭子类型

    更加优雅的调用父类中的方法

    哪怕父类被更换,也不用担心

  • 相关阅读:
    10.11-10.16
    10.8-10.10
    9.26-28
    9.29css继承属性
    表单的学习
    排版
    css补充
    今天学的新内容
    新内容
    文本样式的修改
  • 原文地址:https://www.cnblogs.com/taoge188/p/8540760.html
Copyright © 2011-2022 走看看