天天看点

python 多继承

python 多继承
python 多继承
# -*- coding: utf-8 -*-
'''多重继承'''
#类定义
class people:
    #定义基本属性
    name = ''
    age = 0
    __weight = 0
    love = 'xiaoli'
    def __init__(self,n,a,w):
        self.name = n
        self.age = a
        # 定义私有属性,私有属性在类外部无法直接进行访问
        self.__weight = w
        self.love = 'xiaohong'

    def speak(self):
        print('%s 说: 我 %d 岁 %d公斤' % (self.name,self.age,self.__weight))

#单继承示例


class student(people):
    grade = ''
    def __init__(self,n,a,w,g):
        #调用父类的构造
        people.__init__(self,n,a,w)
        self.grade = g
    #覆写父类的方法
    def speak(self):
        print('%s 说: 我 %d 岁 ,我在读 %d 年级' % (self.name,self.age,self.grade))

#另一个类,多重继承之前的准备
class speaker():
    topic = ''
    name = ''
    def __init__(self,n,t):
        self.name = n
        self.topic = t
    def speak(self):
        print('我叫 %s ,我是一个演说家,我本次演讲的主题是 %s ' % (self.name,self.topic))

# 多重继承
class sample(speaker,student):
    a = ''
    def __init__(self,n,a,w,g,t):
        student.__init__(self,n,a,w,g)
        speaker.__init__(self,n,t)
#实例化类
p = sample('lili',10,30,3,'Python')

p.speak() #方法名同,默认调用的是在括号中排前地父类的方法