组合||抽象类||多态||鸭子类型

Posted Mr。yang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了组合||抽象类||多态||鸭子类型相关的知识,希望对你有一定的参考价值。

组合

软件重用的重要方式除了继承之外还有另外一种方式,即:组合

组合指的是,在一个类中以另外一个类的对象作为数据属性,称为类的组合

技术分享图片
class People:
    def __init__(self,name,age,sex):
        self.name = name
        self.age  = age
        self.sex  = sex

class Renwen(People):
    def __init__(self,name,age,sex,weapon):
        super().__init__(name,age,sex)
        self.weapon = weapon
        self.attribute = [] #锐雯的属性列表
    def skill(self):
        print(%s is skill%self.name)

class Teacher(People):
    def __init__(self,name,age,sex,level):
        super().__init__(name,age,sex)
        self.level = level

    def teach(self):
        print("%s is teaching" %self.name)

class Attribute:
    def __init__(self,damage,spell,armor):
        self.danage = damage
        self.spell = spell
        self.armor =armor

    def tell_info(self):
        print("生命值:%s,法术:%s,护甲:%s"%(self.danage,self.spell,self.armor))

rewen = Renwen(锐雯,22,female,"砍刀")
teacher1 =Teacher(林书行,30,male,20)

a = Attribute(200,20,100)#创建属性对象

rewen.attribute.append(a) #添加属性值

#打印出属性值
for i in rewen.attribute:
    i.tell_info()
View Code

 

以上是关于组合||抽象类||多态||鸭子类型的主要内容,如果未能解决你的问题,请参考以下文章

面向对象之组合封装多态性鸭子类型

023_接口类,抽象类,多态,鸭子类型,封装

多态,鸭子模型

鸭子类型

python多态和鸭子类型

面向对象三大特性