从事嵌入式系统软硬件设计工作已有将尽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。