python3 多继承时,父类有相同一个函数的选择

class People:
    name = ''
    age = 0
    __weight = 0

    def __init__(self, name, age, weight):
        print("People 初始化")
        self.age = age
        self.name = name
        self.__weight = weight
        print("People 初始化1")

    def speak(self):
        print("我叫 {},我今年 {} 岁了,我体重 {} kg。".format(self.name, self.age, self.__weight))


class Student(People):
    grade = ''

    def __init__(self, name, age, weight, grade):
        print("Student 初始化")
        People.__init__(self, name, age, weight)
        self.grade = grade
        print("Student 初始化1")

    def speak(self):
        print("我叫 {},我今年 {} 岁了,我在读 {} 。".format(self.name, self.age, self.grade))



class Musician():
    title = ''
    name = ''

    def __init__(self, name, title):
        print("Musician 初始化0")
        self.name = name
        self.title = title
        print("Musician 初始化1")

    def speak(self):
        print("我叫 {},我演奏的歌曲是 {}。".format(self.name, self.title))


class Sample(Musician,Student):
    sampleID = 0

    def __init__(self, name, age, weight, grade, title, sampleID):
        print("Sample 初始化0")

        Student.__init__(self, name, age, weight, grade)
        Musician.__init__(self, name, title)
        self.sampleID = sampleID
        print("Sample 初始化1")


    def sp(self):
        self.speak()
        """
        如果多继承时,Musician 写在前面class Sample(Musician,Student):,那么此处是 Musician.speak()
        如果多继承时,Student 写在前面class Sample(Student,Musician):,那么此处是 Student.speak()
        """

if __name__ == '__main__':
    sample_10010 = Sample("clever",18,60,"大四","《秋日的私语》",10010)
    sample_10010.speak()

猜你喜欢

转载自blog.csdn.net/xiao_yi_xiao/article/details/121029986
今日推荐