python面向编程:阶段练习
1.所有程序都因该使用面向对象来设计吗?为什么?
不是,面向对象编程优点是扩展性高,对程序员来说不需要关心具体的步骤,只需要调用对象功能,缺点是:程序的复杂度变高,整体的可控性比较低!
2.什么是对象 什么是类
对象是现实生活中实实在在存在,具备自己的特征和行为的事物。
类是功能与特征的集合体
3.在面向过程编程中我们思考解决方案时,是分析完成任务时需要哪些步骤,按照什么样的顺序来编写,而在面向对象编程中我们从操作者转变为指挥者 首先思考的是什么?
思考的是什么样的对象可以帮我完成这个任务
4.一个类中通常包含变量和函数,它们分别用于描述什么?
变量为特征
函数表示功能
5.类在定义阶段发生了什么
类在定义的时候就调用
6.创建对象时发生了什么
就为对象赋予特征与功能
7.什么是绑定方法,和普通函数有什么区别
是对象与类中的某个函数的绑定关系 就像生活中 我们都会吃饭 我吃饭你不会饱
8.根据需求编写程序,
学生成绩管理系统
1.根据姓名查看学生所有成绩
2.查看所有人的某学科成绩
3.查看总平均分
4.查看某人的某学科成绩
5.根据姓名删除学生信息
先分析需要哪些对象:
学生对象
属性:姓名,年龄,语文成绩,数学成绩,英语成绩
行为:自我介绍(输出自己的姓名 年龄 成绩)
管理器对象:
属性:一堆学生(一个列表 里面装一堆学生对象 可以手动创建放进去)
行为:上述五个功能
增强版要求(选做)
1.首先编写json格式的数据文件 内容为学生
2.将json数据解析后转换为学生对象在进行增删改查
python面向编程:阶段练习的更多相关文章
- python面向编程: 常用模块补充与面向对象
一.常用模块 1.模块 的用用法 模块的相互导入 绝对导入 从sys.path (项目根目录)开始的完整路径 相对导入 是指相对于当前正在执行的文件开始的路径 只能用于包内模块相互间导入 不能超过顶层 ...
- python面向编程:面向对象、init、绑定方法、案例练习
一.类的定义 二.面向对象概念三.对象的使用四.__init__函数的使用五.绑定方法六.面向对象联系 一.类的定义 1.什么叫做类? 类就是分类,类型的意思,一堆具备相同特征和行为的事物的抽象概念 ...
- python面向编程;类的绑定与非绑定方法、反射、内置方法
一.类的绑定与非绑定方法 ''' 类中定义函数分为了两大类: 1. 绑定方法 特殊之处: 绑定给谁就应该由谁来调用,谁来调用就会将谁当做第一个参数自动传入 绑定给对象的方法: 在类中定义函数没有被任何 ...
- python面向编程:类的组合、封装、property装饰器、多态
一.组合 二.封装 三.propert装饰器 四.多态 一.组合 ''' 1. 什么是组合 一个对象的属性是来自于另外一个类的对象,称之为组合 2. 为何用组合 组合也是用来解决类与类代码冗余的问题 ...
- python面向编程:类继承、继承案例、单继承下属性查找、super方法
一.类的继承 二.基于继承解决类与类的代码冗余问题 三.在单继承背景下属性的查找 四.super的方法 一.类的继承 1.什么是继承? 在程序中继承是一种新建子类的方法的方式,新创建的类成为子类\派生 ...
- 深入理解 Python 异步编程(上)
http://python.jobbole.com/88291/ 前言 很多朋友对异步编程都处于"听说很强大"的认知状态.鲜有在生产项目中使用它.而使用它的同学,则大多数都停留在知 ...
- Python并发编程一(多进程)
1.背景知识(进程.多道技术) 顾名思义,进程即正在执行的一个过程.进程是对正在运行程序的一个抽象. 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一 ...
- Python网络编程之网络基础
Python网络编程之网络基础 目录 Python网络编程之网络基础 1. 计算机网络发展 1.1. OSI七层模型 1.2. 七层模型传输数据过程 2. TCP/IP协议栈 2.1 TCP/IP和O ...
- python核心编程第二版笔记
python核心编程第二版笔记由网友提供:open168 python核心编程--笔记(很详细,建议收藏) 解释器options:1.1 –d 提供调试输出1.2 –O 生成优化的字节码(生成 ...
随机推荐
- Spring + MyBatis 框架下处理数据库异常
一.概述 使用JDBC API时,很多操作都要声明抛出java.sql.SQLException异常,通常情况下是要制定异常处理策略.而Spring的JDBC模块为我们提供了一套异常处理机制,这套异常 ...
- 基于vue-cli项目打包慢的定位优化过程
入职一周后,上一个前端就离职了(超级坑爹的),留下了一个比较棘手的问题,就是基于vue-cli的项目打包超级慢,我接手项目的时候,打包需要45min(上个离职者也不知道原因),经过3个月之后,随着项目 ...
- vue点击编辑按钮,内容变成input可以修改,也可以删除
一.效果 图1 图2,点击报错之后,又变成图1的效果 二.使用到了element UI中的以下组件: <el-button> <el-input> 三.使用的关键点是vue中的 ...
- 零零散散的shell笔记
ls __paddlepalm_* > __palminfo__ 名字以__paddlepalm_开头的文件名打印到后面那个info里面 https://www.runoob.com/linux ...
- Apache——开启个人用户主页功能
个人主页功能分为不加密和加密两种 不加密: 先来建立几个用户,我这是建了两个 例:命令为:useradd qiyuan 然后输入:passwd qiyuan,改一下密码 我们看一下家目录下面: 已经 ...
- day36 joinablequeue、多线程理论、多线程的两种使用方式、守护线程、互斥锁、死锁、递归锁、信号量
1.joinablequeue队列 joinablequeue与queue一样,也是一种队列,其继承自queue,也有queue中的put 与get 方法,但是在joinablequeue中有自己的 ...
- 2019JAVA课程总结
课程总结 1.子类不能直接访问父类的私有属性,可通过get(),set()来间接访问. 2.super(),this()不可同时使用,因为其都必须放在首行,所以不可同时使用. 3.若删去super() ...
- PAT B1027 打印沙漏(20)
思路: 使用数组保存每一行沙漏的最大符号数 输入一个正整数和一个符号 遍历数组,找到大于正整数的数组下标 j. 三角形底边的字符数为 (j - 1) * 2 - 1 打印沙漏 打印剩余字符:x - n ...
- PAT B1036 跟奥巴马一起编程 (15)
AC代码 #include <cstdio> using namespace std; int main(){ int n = 0, m = 0; char a; scanf(" ...
- sqlalchemy定义mysql时间戳字段
update_time = Column(TIMESTAMP, nullable=False, comment='更新时间戳', server_default=text('CURRENT_TIMEST ...