Python语言系统学习13:类的多继承

从事嵌入式系统软硬件设计工作已有将尽20年的时间,在进行硬件目标板调试时,常需要上位机软件支持。在进行上位机软件程序的设计时,采用过VB、VB.net和C++等多种语言,偶然的机会发现Python,接触后,立刻感觉到它的强大,现在我的上位机软件编程只用Python。本系列教程将从基于硬件的上位机软件设计的角度着手,系统介绍Python语言,希望读者通过本系列教程的学习,能够对Python语言立刻学以致用,真正将所学知识应用到项目实践中。

开发环境:Visual Studio Code

操作系统:Microsoft Window 7

Python版本:3.7

参考教材:Python快速编程入门,黑马程序员,人民邮电出版社,2017年9月第1版


一、有关类的多继承的例子

1、PyQt设计界面:

2、对象命名:

3、源程序

# 系统包
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
# 项目包
from Ui_MainWindow import Ui_MainWindow

class people:
    name = ""
    age = 0
    sex = "男"

    def OutputName(self):
        strOutput = "我叫" + self.name
        return  strOutput

    def OutputAge(self):
        strOutput = "今年已经" + self.age + "岁了"
        return  strOutput

    def OutputSex(self):
        if self.sex == "男":
            strOutput = "我是一个阳光帅气的男孩,我生命的每一天都充满活力"
        else:
            strOutput = "我是一个温柔漂亮的女孩,我珍惜我生命中的每一分、每一秒"
        return  strOutput
    
    def OutputResume(self):
        strOutput = "    " + self.OutputName() + ","
        strOutput = strOutput + self.OutputAge() + ","
        strOutput = strOutput + self.OutputSex() + "。"
        return strOutput

class Lesson:
    Lesson1 = ""
    Lesson2 = ""
    Lesson3 = ""
    Lesson4 = ""
    Lesson5 = ""
    Lesson6 = ""

    def OutputLesson(self):
        strOutput = "    我的学习刻苦努力,已经修完了"
        strOutput = strOutput + self.Lesson1 + "、"
        strOutput = strOutput + self.Lesson2 + "、"
        strOutput = strOutput + self.Lesson3 + "、"
        strOutput = strOutput + self.Lesson4 + "、"
        strOutput = strOutput + self.Lesson5 + "、"
        strOutput = strOutput + self.Lesson6 + "等课程,学习成绩优异"
        return strOutput

class student(people, Lesson):
    school = ""
    department = ""

    def OutputSchool(self):
        strOutput = "通过我高中3年的不懈努力,考入了全球最出色的高等院校——" + self.school
        return  strOutput

    def OutputDepartment(self):
        strOutput = "我在该校最有发展前景的" + self.department + "就读"
        return  strOutput
    
    def OutputResume(self):
        strOutput = "    " + self.OutputName() + ","
        strOutput = strOutput + self.OutputAge() + ","
        strOutput = strOutput + self.OutputSex() + ","
        strOutput = strOutput + self.OutputSchool() + ","
        strOutput = strOutput + self.OutputDepartment() + "。"
        strOutput = strOutput + "\r\n" + self.OutputLesson() + "。"
        return strOutput

class CMainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
    def __init__(self, parent = None):
        super(CMainWindow, self).__init__(parent)
        self.setupUi(self)

        # 主窗体设置
        self.show()
    
    def Generate(self):
        p = student()
        p.name = self.txtName.text()
        p.age = self.txtAge.text()
        p.sex = self.txtSex.text()
        p.school = self.txtSchool.text()
        p.department = self.txtDepartment.text()
        p.Lesson1 = self.txtLesson1.text()
        p.Lesson2 = self.txtLesson2.text()
        p.Lesson3 = self.txtLesson3.text()
        p.Lesson4 = self.txtLesson4.text()
        p.Lesson5 = self.txtLesson5.text()
        p.Lesson6 = self.txtLesson6.text()       

        self.txtResume.setText(p.OutputResume())

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = CMainWindow()
    sys.exit(app.exec_())
    

二、注解

1、定义

class DerivedClassName(Base1, Base2, Base3):
    <statement-1>
    .
    .
    .
    <statement-N>

2、允许“一子多父”,父类与子类方法可以同名,如不加限制,调用子类方法。

3、高内聚,低耦合

发布了413 篇原创文章 · 获赞 1104 · 访问量 81万+

猜你喜欢

转载自blog.csdn.net/qingwufeiyang12346/article/details/103037186