python的多继承

每周学点土壤知识 2018-03-23

昨天被室友拖着去吃鸡去了,所以没有学习,该反省。只有今天多学习一点,将昨天的补回来。

今天学习了python的多继承。

觉得多继承还是有点难,今天在学习多继承的实收,一不小心将一个父类的构造函数的名称写错了,然后就出现了bug,找了好久,才发现是上面写错了,结果编辑器报错的地方与我真正出错的地方差了好远,所以大家写代码要仔细一点,找bug真的是恼火。

好了,言归正传,开始正文。

class  People(object):   # 这是第一个父类<br />    name=""<br />    age=0<br />    __weight=0  # 私有属性<br /><br />    def __init__(self,name,age,weight):<br />        self.name=name<br />        self.age=age<br />        self.__weight=weight<br /><br />    def speak(self):<br />        print(self.name,self.age,self.__weight)<br /><br /><br />#  在继承类的时候 类名后面的括号里写的就是你需要继承的类,可以看出来这是一个单继承<br />class Student(People):   #这里定义了一个子类,而且继承了上面的people类<br />    grade=""<br />    def __init__(self,name,age,weight,grade):<br />        People.__init__(self,name,age,weight)<br />        self.grade=grade<br /><br />    def print_sutdent(self):<br />        print(self.grade)<br /><br /># 在这儿再创建一个类<br /><br />class Speaker(object):<br />    topic=""<br />    name=""<br />    def __init__(self,name,topic):<br />        self.name=name<br />        self.topic=topic<br /><br />    def print_speak(self):<br />        print(self.name,self.topic)<br /><br /># 这儿就是今天的主角了,类的多继承,可以看到,类名之后的括号里,就是写的你需要继承的父类的名称。<br /># 注意,父类的书序很重要,比如说你需要调用一个子类没有而父类却有的方法,那么python解释器将会在父类之中从左到右寻找你调用的方法。<br /><br />class  Sample(Student,Speaker):  <br />    a=""<br /># 这里很重要,这里是继承父类的构造函数的写法<br />    def __init__(self,name,age,weight,grade,topic,a):<br />        Student.__init__(self,name,age,weight,grade)<br />        Speaker.__init__(self,name,topic)<br />        self.a=a<br /><br /># 这里叫做方法重写:意思就是如果父类中存在这个方法,但是功能不能满足子类的需求,那么你就可以在子类中重新定义一个函数名称和父类的相同,<br />#然后这个实例在调用该方法的时候,就会调用子类中的你重写的方法。<br />    def print_speak(self):<br />        print(self.name,self.age,self.grade,self.topic,self.a)<br /><br /># 使用子类生成实例<br /><br />test=Sample("tim",25,80,99,"python",10)<br /><br /># 调用子类中重写的方法<br />test.print_speak()<br /><br /><br />

相关推荐

Kwong / 0评论 2019-06-11