3-3 面向对象 本章总结
本章总结
练习题
- 面向对象三大特性,各有什么用处,说说你的理解。
- 类的属性和对象的属性有什么区别?
- 面向过程编程与面向对象编程的区别与应用场景?
- 类和对象在内存中是如何保存的。
- 什么是绑定到对象的方法、绑定到类的方法、解除绑定的函数、如何定义,如何调用,给谁用?有什么特性
使用实例进行 获取、设置、删除 数据, 分别会触发类的什么私有方法
class A(object): pass a = A() a["key"] = "val" a = a["key"] del a["key"]
python中经典类和新式类的区别
如下示例, 请用面向对象的形式优化以下代码
1、在没有学习类这个概念时,数据与功能是分离的def exc1(host,port,db,charset):conn=connect(host,port,db,charset)conn.execute(sql)return xxxdef exc2(host,port,db,charset,proc_name)conn=connect(host,port,db,charset)conn.call_proc(sql)return xxx# 每次调用都需要重复传入一堆参数exc1('127.0.0.1',3306,'db1','utf8','select * from tb1;')exc2('127.0.0.1',3306,'db1','utf8','存储过程的名字')
示例1, 现有如下代码, 会输出什么:
class People(object): __name = "luffy" __age = 18 p1 = People() print(p1.__name, p1.__age)
示例2, 现有如下代码, 会输出什么:
class People(object): def __init__(self): print("__init__") def __new__(cls, *args, **kwargs): print("__new__") return object.__new__(cls, *args, **kwargs) People()
请简单解释Python中 staticmethod(静态方法)和 classmethod(类方法), 并分别补充代码执行下列方法。
class A(object): def foo(self, x): print("executing foo(%s, %s)" % (self,x)) @classmethod def class_foo(cls, x): print("executing class_foo(%s, %s)" % (cls,x)) @staticmethod def static_foo(x): print("executing static_foo(%s)" % (x)) a = A()
请执行以下代码,解释错误原因,并修正错误。
class Dog(object): def __init__(self,name): self.name = name @property def eat(self): print(" %s is eating" %self.name) d = Dog("ChenRonghua") d.eat()
下面这段代码的输出结果将是什么?请解释。
class Parent(object): x = 1 class Child1(Parent): pass class Child2(Parent): pass print(Parent.x, Child1.x, Child2.x) Child1.x = 2 print(Parent.x, Child1.x, Child2.x) Parent.x = 3 print(Parent.x, Child1.x, Child2.x) # 1 1 1 继承自父类的类属性x,所以都一样,指向同一块内存地址 # 1 2 1 更改Child1,Child1的x指向了新的内存地址 # 3 2 3 更改Parent,Parent的x指向了新的内存地址
多重继承的执行顺序,请解答以下输出结果是什么?并解释。
class A(object): def __init__(self): print('A') super(A, self).__init__() class B(object): def __init__(self): print('B') super(B, self).__init__() class C(A): def __init__(self): print('C') super(C, self).__init__() class D(A): def __init__(self): print('D') super(D, self).__init__() class E(B, C): def __init__(self): print('E') super(E, self).__init__() class F(C, B, D): def __init__(self): print('F') super(F, self).__init__() class G(D, B): def __init__(self): print('G') super(G, self).__init__() if __name__ == '__main__': g = G() f = F() # G # D # A # B # # F # C # B # D # A
请编写一段符合多态特性的代码.
很多同学都是学会了面向对象的语法,却依然写不出面向对象的程序,原因是什么呢?原因就是因为你还没掌握一门面向对象设计利器,即领域建模,请解释下什么是领域建模,以及如何通过其设计面向对象的程序?http://www.cnblogs.com/alex3714/articles/5188179.html 此blog最后面有详解
请写一个小游戏,人狗大站,2个角色,人和狗,游戏开始后,生成2个人,3条狗,互相混战,人被狗咬了会掉血,狗被人打了也掉血,狗和人的攻击力,具备的功能都不一样。注意,请按题14领域建模的方式来设计类。
编写程序, 在元类中控制把自定义类的数据属性都变成大写.
编写程序, 在元类中控制自定义的类无需init方法.
- 编写程序, 编写一个学生类, 要求有一个计数器的属性, 统计总共实例化了多少个学生.
- 编写程序, A 继承了 B, 俩个类都实现了 handle 方法, 在 A 中的 handle 方法中调用 B 的 handle 方法
编写程序, 如下有三点要求:
- 自定义用户信息数据结构, 写入文件, 然后读取出内容, 利用json模块进行数据的序列化和反序列化
e.g {"egon":{"password":"123",'status':False,'timeout':0}, "alex":{"password":"456",'status':False,'timeout':0}, }
- 定义用户类,定义方法db,例如 执行obj.db可以拿到用户数据结构
- 在该类中实现登录、退出方法, 登录成功将状态(status)修改为True, 退出将状态修改为False(退出要判断是否处于登录状态).密码输入错误三次将设置锁定时间(下次登录如果和当前时间比较大于10秒即不允许登录)
用面向对象的形式编写一个老师角色, 并实现以下功能, 获取老师列表, 创建老师、删除老师、创建成功之后通过 pickle 序列化保存到文件里,并在下一次重启程序时能
读取到创建的老师, 例如程序目录结构如下.. |-- bin/ | |-- main.py 程序运行主体程序(可进行菜单选择等) |-- config/ | |-- settings.py 程序配置(例如: 配置存储创建老师的路径相关等) |-- db 数据存储(持久化, 使得每次再重启程序时, 相关数据对应保留) | |-- teachers/ 存储所有老师的文件 | |-- ... ... |-- src/ 程序主体模块存放 | |-- __init__.py | |-- teacher.py 例如: 实现老师相关功能的文件 | |-- group.py 例如: 实现班级相关的功能的文件 |-- manage.py 程序启动文件 |-- README.md 程序说明文件
根据23 题, 再编写一个班级类, 实现以下功能, 创建班级, 删除班级, 获取班级列表、创建成功之后通过 pickle 序列化保存到文件里,并在下一次重启程序时能
读取到创建的班级.根据 23题, 编写课程类, 实现以下功能, 创建课程(创建要求如上), 删除课程, 获取课程列表
根据23 题, 编写学校类, 实现以下功能, 创建学校, 删除学校, 获取学校列表
通过23题, 它们雷同的功能, 是否可以通过继承的方式进行一些优化
伪代码 class Behavior(object): def fetch(self, keyword): 通过 keyword 参数 查询出对应的数据列表 class School(Behavior): pass class Teacher(Behavior): pass s = School() t = Teacher() s.fetch("school") t.fetch("teacher")
转载于:https://www.cnblogs.com/venicid/p/8652257.html
3-3 面向对象 本章总结相关推荐
- java面向对象第一章
1. 使用类图如何描述设计 - private(私有) 属性 + public(公共) 方法 访问修饰符: 缺省(默认),只能被同一个包中的类访问 private(私有的),访问 ...
- Java面向对象第二章课后习题
网盘链接: 链接:https://pan.baidu.com/s/12YzJZY3s4XSq5C94HxWqZA 提取码:3w23 一.商场为员工提供了基本工资.物价津贴以及房租津贴.其中,物价津贴为 ...
- 面向对象的类、方法和对象
面向对象 第一章 你要学的重点知识点 类和对象 构建方法 访问权限 继承 多态(最重要) 抽象和借口 内存分析 其他知识点不是不重要,相对而言,最重要的是上面这几个 第二章 类和对象 画图纸 定义车的 ...
- 【0基础学java】教学日志:javaSE-面向对象6-面向对象前4章上机作业点评,主要涉及继承、封装、多态三个章节的内容
目录 一.面向对象第一章上机作业参考答案(略) 二.面向对象第二章上机作业参考答案: 三.面向对象第三章上机作业参考答案: 1.上机练习1已在第三章博客中编写,请参考: 2.上机练习2 四.面向对象第 ...
- python 完全面向对象_python之面向对象
Python Python开发 Python语言 python之面向对象 第一章 面向对象初识 面向对象的三大特性是什么? 抽象.继承.多态. 面向对象第一个优点:* 对相似功能的函数,同一个业务的函 ...
- 【基础篇】C#基础知识——面向对象
[基础篇]C#基础知识--面向对象 第一章 C#基础知识--入门 第二章 C#基础知识--面向对象 文章目录 [基础篇]C#基础知识--面向对象 前言 一.C#面向对象的特性 二.命名空间 2.1 n ...
- 面向对象(大体内容)
面向对象 本章为大体内容, 一些细分内容请见下章 文章目录 面向对象 **1面向对象内容的三条主线:** **2面向过程.对象** 1 区别 **3.类.对象** **4 类的声明与使用** 1 设计 ...
- 第一百零二节,JavaScript函数
JavaScript函数 学习要点: 1.函数声明 2.return返回值 3.arguments对象 函数是定义一次但却可以调用或执行任意多次的一段JS代码.函数有时会有参数,即函数被调用时指定了值 ...
- python3.6下载百度云_Python3.6零基础入门与爬虫案例开发教程
全网最热的Python3入门+进阶 第1章 Python入门导学 介绍Python的特性.优点.缺点.前景以及课程的内容.重点和特色. 第2章 Python环境安装 一键安装Python的编译环境,写 ...
最新文章
- scala case class 继承_数字硬件系统设计之一:Scala快速入门(2)
- 普开数据第15届全国高校师资班(青海西宁)
- 智慧工厂平台整体结局方案
- sql2005通用分页存储过程
- 2021年文山州一中高考成绩查询,云南文山第一中学2021年录取分数线
- Asp.net.Ajax控件学习
- dll模块化设计与编程_PLC模块、结构化编程到底强在哪里?
- 计算机数据结构考研知识点汇总,数据结构考研知识点总结.pdf
- Nature | 易基因DNA甲基化测序助力人多能干细胞向胚胎全能8细胞的人工诱导
- 2021裁判文书网抓取
- oracle日志满了删除,oracle日志文件满了
- list.sort() 方法可以用函数作 key 的参数
- 福建省2021高考成绩如何查询,2021福建省地区高考成绩排名查询,福建省高考各高中成绩喜报榜单...
- Please don't stop rua 233333
- 程序员必须学会的《软技能》
- IP地址分类,私有地址
- 揭开程序员装 13 行为的面具
- 计算机应用基础实验指导ppt,2016计算机应用基础实验指导.ppt
- 微型计算机的难点,微机原理及应用重点难点.PDF
- 自媒体书单:从入门、写作、策划到运营自媒体必须收藏的系列好书