当前位置:首页 > 编程学习资源 >

《Python语言程序设计》课设代码

大小:3.45 MB已被705人关注

《Python语言程序设计》课设代码是一个不错的学习资源,大小为3.45 MB,由钱高昂 提供,Python类资源中评分为9.5。

Tags:python 程序设计 

资源介绍

电子科技大学2020年《Python语言程序设计》的期末课设。课设题目是自动组卷评卷考试系统

心得笔记

给大家精选了网上关于《《Python语言程序设计》课设代码》的学习笔记心得及相关实例内容,值得大家学习参考。

Python面向对象程序设计类的封装与继承用法示例

本文实例讲述了Python面向对象程序设计类的封装与继承用法。分享给大家供大家参考,具体如下:

访问限制(封装)

1、概念

面向对象语言的三大特征:封装, 继承, 多态。

广义的封装: 类和函数的定义本身就是封装的体现。

狭义的封装:一个类的某些属性,不希望外界直接访问,而是把这个属性私有化[只有当前类持有],然后暴露给外界一个访问的方法。

封装的本质:就是属性私有化的过程。

封装的好处:提供了数据的复用性,保证了数据的安全性。

举例:插排

2、使用

class Person(object):
 def __init__(self, name, age, height, weight, money):
  self.name = name
  self.__age__ = age
  self.weight = weight
  self.__money = money
  self.__height = height
 def run(self):
  print(self.__money)
 def eat(self):
  print("eat")
 # 通过内部方法,去修改、获取私有属性
 # 通过自定义的方法实现对私有属性的赋值与取值
 # set方法:setxxx
 def setMoney(self, money):
  # 数据的过滤
  if money < 0:
   money = 0
  self.__money = money
 # get方法:getXXX
 def getMoney(self):
  return self.__money
per = Person("hanmeimei", 20, 170, 55, 10000)
# 1.属性被私有化之后的访问
# 如果要让内部属性不被外部直接访问,在属性前加两个下划线(__),
# 在python中如果在属性前面加两个下划线,name这个属性就变成了私有属性[private]
# 私有属性的含义:在外界不能像以前那么直接访问
# print(per.__money) #无法在外界直接访问
per.run() # 内部可以访问
# 2.解决办法: 如何对私有属性取值和赋值
# 属性被私有化之后,可以通过get/set的方法进行访问
per.setMoney(10)
print(per.getMoney())
# 3.工作原理
# 不能直接访问per.__money是因为python解释器把__money变成了_Person__money
# 仍然可以使用_Person__money去访问,但是强烈不建议这么干,不同的解释器可能存在解释的变量名不一致的问题
per._Person__money = 1
print(per.getMoney())
# 4.特殊情况
# 在Python中 __xxx__ 属于特殊变量,将不再属于私有变量,可以直接访问
print(per.__age__)
# 在python中 __xxx变量,这样的实例变量外部是可以访问的,但是,按照约定的规则
# 当我们看到这样的变量时,意思虽然是"虽然我可以被访问,但是请把我视为私有变量,不要直接访问我"
print(per._Person__height)

输出:

10000
10
1
20
170

继承

1、概念

如果两个或者两个以上的类具有相同的属性和方法,我们可以抽取一个类出来,

在抽取的类中声明公共的部分

​ 被抽取出来的类 ——父类 超类 基类
​ 其他类 —— 子类 派生类
​ 他们之间的关系 ——子类继承自父类

2、单继承

简单来说,一个子类只有一个父类,被称为单继承

演示:test.py 文件

注意:在使用继承时,尽量一个类存在于一个模块中

from person import Person
from student import Student
from worker import Worker
per = Person("aa", 1, 2)
stu = Student("tom", 18, 12345, 110)
print(stu.name, stu.age)
stu.run()
print(stu.stuId)
#私有属性
#print(stu.__money)
print(stu.getMoney())#通过继承过来的共有方法访问私有属性
#stu.stuFunc()
wor = Worker("lilei", 20, 111)
print(wor.name, wor.age)
wor.eat("apple")
#子类对象调用父类同名的函数,则优先调用子类中的函数
#本质是子类中的方法覆盖了父类中同名的函数
wor.run()
print(per.getMoney())
#父类对象不能访问子类特有的属性或方法
#print(per.stuId)

输出:

tom 18
run
110
12345
lilei 20
eat apple
子类中的run方法被调用了
2

person.py文件:

#以前的写法 class Person(object):
#但是实质上,如果没有显示的写出父类,则这个类的父类默认为object
#object是所有类的父类或者超类
class Person(object):
 #构造方法
 def __init__(self, name, age, money):
  self.name = name
  self.age = age
  self.__money = money
  #get/set方法
 def setMoney(self, money):
  self.__money = money
 def getMoney(self):
  return self.__money
 def run(self):
  print("run")
 def eat(self, food):
  print("eat", food)

#student.py文件
from person import Person
class Student(Person):
 def __init__(self, name, age, money, stuId):
  #调用父类中的构造方法
  #方法1 super(当前类,self).__init__(参数列表)
  #super(Student,self).__init__(name, age, money, stuId)
  #方法2 父类名.__init__(属性列表)
  Person.__init__(self, name, age, money)
  #子类可以有一些自己独有的属性
  self.stuId = stuId
 def setFunc(self):
  print(self.__money)

#worker.py文件
from person import Person
class Worker(Person):
 def __init__(self, name, age, money):
  super(Worker,self).__init__(name, age, money)
 # 在子类中定义和一个父类中重名的函数
 def run(self):
  print("子类中的run方法被调用了")

总结:

继承的特点:

a. 子类对象可以直接访问父类中未私有的对象
b. 子类对象可以调用父类中的方法
c. 父类对象不能访问子类中特有的属性或者方法

优缺点:

优点:

1.可以简化代码,减少冗余
2.提高代码的维护性
3.提高了代码的安全性

缺点:

耦合和内聚被用来描述类与类之间的关系,耦合性越低,内聚性越高,说明代码越好。
但是,在继承关系中,耦合性相对比较高,如果修改父类,子类也会随着变化。

3、多继承

顾名思义:就是一个子类中可以有多个父类,比如一个孩子有一个爸爸一个妈妈

from child import Child
def main():
 c = Child(300, 100,"xiaoming")
 print(c.money, c.faceValue)
 c.play()
 c.eat()
 #注意:如果多个父类中的方法名相同,默认调用的是子类括号中排前面的父类中的方法
 #此时调用的是Father中func方法
if __name__ == "__main__":
 main()

输出:

300 100
play
eat

#father.py文件
class Father(object):
 def __init__(self, money):
  self.money = money
 def play(self):
  print("play")
 def func(self):
  print("Father")

#mother.py文件
class Mother(object):
 def __init__(self, faceValue):
  self.faceValue = faceValue
 def eat(self):
  print("eat")
 def func(self):
  print("Mother")

#child.py文件
from father import Father
from mother import Mother
class Child(Father, Mother):
 def __init__(self, money, faceValue,name):
  #注意:分别调用各个父类中的构造方法
  Father.__init__(self, money)
  Mother.__init__(self, faceValue)
  #子类中同样可以有自己独有的特性
  self.name = name

总结:

子类可以从多个父类中继承属性和方法
一个父类可以有多个子类
一个子类可以有多个父类

4、函数重写

4.1、系统函数

'''
重写:将函数重写一遍
__str__():在调用print打印对象时自动调用,是给用户用的,是一个描述对象的方法.
__repr__():是给机器用的,在python解释器里面直接敲对象名在回车后调用方法
注意:在没有str,且有repr时,str=repr
'''
class Animal(object):
 def __init__(self, name, age, height, weight):
  self.name = name
  self.age = age
  self.height = height
  self.weight = weight
 def __str__(self):
  return "%s-%d-%d-%d"%(self.name, self.age, self.height, self.weight)
ani = Animal("大黄", 5, 60, 25)
#print(per.name, per.age, per.height, per.weight)
#在打印ani时自动调用str函数
print(ani)
#优点或者使用时机:当一个对象的属性值很多,并且都需要打印,重写__str__方法后,简化了代码,方便查看.

输出:

大黄-5-60-25

5、自定义函数

重写函数的时机:当父类中函数的功能满足不了子类的需求时,就可以进行重写。
演示:

from smallAnimal import SmallAnimal
from cat import Cat
c = Cat()
c.func()

#smallAnimal.py文件
class SmallAnimal(object):
 def func(self):
  print("wwww")

#cat.py文件
from smallAniml import SmallAnimal
class Cat(SmallAnimal):
 def func(self):
  print("呵呵呵")

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

展开 +

收起 -

相关资源

Python程序员面试算法宝典
Python程序员面试算法宝典 超清版

覆盖了近三年知名IT大厂程序员面试笔试中超过98%的高频算法知识点 指引Python程序员面试笔试之道 剑指offer

立即下载
Python程序设计教程
Python程序设计教程 高清版

《 Python程序设计教程 》基于Windows7和Python3.3.2构建Python开发平台,阐述Python语言的基础知识,以及使用Python语言的实际开发应用实例。《Python程序设计教程/高等学校计算机科学与技术教材》集

立即下载
从零开始学Python程序设计
从零开始学Python程序设计 完整影印版

《从零开始学Python程序设计》是一本关于Python零基础的电子书资源,涉及从零开始、Python、程序设计等相关内容,本文提供大小为172MB的完整影印PDF格式电子书下载,希望大家能够喜欢。

立即下载
编写高质量代码:改善Python程序的91个建议
编写高质量代码:改善Python程序的91个建议 清晰扫描版 立即下载
Python程序设计
Python程序设计 完整第3版

这书具备下列特性: ●普遍应用计算机图形学这书出示1个简易的图型程序包graphics.py做为实例。 ●轻松愉快的事例这书包括了详细的程序编写实例来处理具体难题。 ●亲近大自然的写作以大

立即下载
全国计算机等级考试二级教程:Python语言程序设计
全国计算机等级考试二级教程:Python语言程序设计 2018版

这里整理了全国计算机等级考试二级教程-Python语言程序设计2018版,根据教育部考试中心制订的,介绍程序设计的基本方法、Python语言基本语法元素和基本数据类型、程序的控制结构等内容

立即下载
Python程序设计开发宝典
Python程序设计开发宝典 高质量清晰版

本书深入剖析Python 3.5.x、Python 3.6.x及更新版本的内置对象和标准库对象高级用法,150个案例源代码和超过1000个演示性代码片段,可以作为Python程序设计教材

立即下载
下载地址:百度网盘下载
网友留言
89小时15分钟前回答

基于python 字符编码的理解

一、字符编码简史: 美国:1963年 ASCII (包含127个字符 占1个字节) 中国:1980年 GB2312 (收录7445个汉字,包括6763个汉字和682个其它符号) 1993年 GB13000 (收录20902个汉字) 1995年 GBK1.0 (收录 21003个汉字) 2000年 GB18030 (收录70244个汉字) 世界:1991年 unicode(‘万国码'也就统一编码,通常占2字节,复杂的汉字占4字节) UTF-8 (可变长的字符编码) 二、python中的编码解码应用 Python2中的字符串进行字符编码转换过程是: 字节串--decode('原来的字符编码')--Unicode字符串--encode('新的字符编码')--字节串 #!/usr/bin/env python# -*- coding:utf-8 -*-utf_8_a = '测试'print(utf_8_a,type(utf_8_a),len(utf_8_a)) #打印utf_8_a的内容、类型及长度……

92小时4分钟前回答

Python 窗体(tkinter)按钮 位置实例

如下所示: import tkinter def go(): #函数 print("go函数") win=tkinter.Tk() #构造窗体win.title("hello zhaolin")#标题win.geometry("800x800+300+0")#800宽度,800高度,x,y坐标,左上角button=tkinter.Button(win,text="有种点我",command=go) #收到消息执行go函数button.pack()#加载到窗体,button1=tkinter.Button(win,text="有种点",command= lambda :print("hello world"),width=20,height=10) button1.pack()#加载到窗体,#button.place(10,10)win.mainloop() #进入消息循环机制 以上这篇Python 窗体(tkinter)按钮 位置实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。 ……

码小辫

燕正信 提供上传

资源
32
粉丝
18
喜欢
196
评论
19

Copyright 2018-2021 www.xz577.com 码农之家

版权投诉 / 书籍推广 / 赞助:520161757@qq.com