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

从事嵌入式系统软硬件设计工作已有将尽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 student(people):
    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() + "。"
        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()

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

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

二、注解

1、类的继承

Python 同样支持类的继承,如果一种语言不支持继承,类就没有什么意义。派生类的定义如下所示:

class DerivedClassName(BaseClassName1):
    <statement-1>
    .
    .
    .
    <statement-N>

需要注意圆括号中基类的顺序,若是基类中有相同的方法名,而在子类使用时未指定,python从左至右搜索 即方法在子类中未找到时,从左到右查找基类中是否包含方法。

BaseClassName(示例中的基类名)必须与派生类定义在一个作用域内。除了类,还可以用表达式,基类定义在另一个模块中时这一点非常有用。

2、子类可与父类的方法同名,不加限制,则调用子类的方法。

 

 

任何问题,只需在此文章的评论处留言即可,我将尽力解答,不要试图采用其它的联系方式,我一概不理会。

原创性文章,转载请注明出处CSDN:http://blog.csdn.net/qingwufeiyang12346。

 


 

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

猜你喜欢

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